【问题标题】:Combining two regex patterns结合两个正则表达式模式
【发布时间】:2017-12-14 11:26:44
【问题描述】:

有没有办法将这两种模式结合起来?我想删除空格和非字母数字字符。

这确实有效,只是重复 replace 函数似乎效率低下。

var str;
str = $('p').text().replace(/[^a-zA-Z 0-9]+/g, '');
str = str.replace(/\s/g, '');

alert(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>What's Happening Here!</p>

例如jsFiddle

【问题讨论】:

标签: javascript jquery


【解决方案1】:

您可以使用“或”运算符 (|) 将它们组合起来,如下所示:/[^a-zA-Z 0-9]+|\s/g

var str = $('p').text().replace(/[^a-zA-Z 0-9]+|\s/g, '');
console.log(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>What's Happening Here!</p>

【讨论】:

  • 那顶帽子适合你:p
【解决方案2】:

您可以明确地只允许数字和字母。这将丢弃任何空白

str = $('p').text().replace(/[^0-9a-zA-Z]/g, '');

https://jsfiddle.net/fjnc8x4g/1/

【讨论】:

    【解决方案3】:

    ypu 还在最后一个赞后添加.replace

    str = $('p').text().replace(/[^a-zA-Z 0-9]+/g, '').replace(/\s/g, '');
    

    var str;
    str = $('p').text().replace(/[^a-zA-Z 0-9]+/g, '').replace(/\s/g, '');
    alert(str);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
    </script>
    <p>
      What 's Happening Here!
    </p>

    【讨论】:

      猜你喜欢
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      相关资源
      最近更新 更多