【问题标题】:How to delete a string characters until first caps character (javascript/jquery)如何删除字符串字符,直到第一个大写字符(javascript/jquery)
【发布时间】:2020-10-25 11:52:36
【问题描述】:

如果我有这样的段落:

<p class="text">ats hjda syd This is the story of a lost programmer and his doubts about javascript..</p>

我可以告诉使用 javascript 或 jquery,从所有 p.text 中删除第一个字符,直到它遇到大写字符(在这种情况下为“T”)? 我猜即使是正则表达式也可以。

第一个大写字母之前的字符数是可变的。

第一个大写字母各不相同,每个段落都不同。

我知道如何对删除字符的版本进行编码,直到遇到一个字符,但从来不需要像这样处理可变大写字符的情况。

更新:实现我需要的替代方法是计算第三个空格,因为大写字母总是在三个单词之后。

【问题讨论】:

    标签: javascript jquery regex string


    【解决方案1】:

    const paragraphs = document.querySelectorAll('p');
    
    paragraphs.forEach(paragraph => paragraph.innerText = paragraph.innerText.replace(/.*?([A-Z].*)/, (a,b)=>b));
    &lt;p class="text"&gt;ats hjda syd This is the story of a lost programmer and his doubts about The language Javascript..&lt;/p&gt;

    【讨论】:

    • 为什么不试试.*([A-Z].*) 作为正则表达式?
    • @TonyR 我还在学习正则表达式,所以是的,这有点简单,改成那个谢谢。
    • 我会提取捕获的组 ([A-Z].*) 这实际上会删除字符串直到第一个大写字符。
    • @TonyR 抱歉,我不确定我是否理解那个。也许你可以详细说明。
    • 抱歉,已修复!
    【解决方案2】:
    <script>
    
    
    
    {
            let s = "<p class=ats hjda syd This is the story about javascript..</p>";
            let p = /.*([A-Z].*)/;
            let t = s.match(p);
            
            if (t != null) {// OK
                alert(t[1]); // extracted string
            }
            else alert('nok'); //no match
        }       
      </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 2011-06-24
      • 1970-01-01
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多