Javascript:无法理解正则表达式的含义

时间:2014-01-30 07:11:41

标签: javascript jquery

我已经从某个网站实现了这个代码,遗憾的是我不知道if (/\D/g.test(this.value))的含义,请告诉我

完整代码:

 $(document).ready(function() {
 $('.positionclass').bind('keyup blur',function(){ 
   if (/\D/g.test(this.value))
    {
        // Filter non-digits from input value.
        this.value = this.value.replace(/\D/g, '');
    }
    });
 });

这是什么意思/\D/g

5 个答案:

答案 0 :(得分:5)

在正则表达式中\d匹配一个数字,而\D匹配任何不是数字的内容。

“g”标志代表“全局”,因此您可以有效地确保您正在测试的字符串中的每个字符都不是数字。

如果你没有指定“g”标志,那么你只会针对字符串中的第一个匹配测试正则表达式。

答案 1 :(得分:1)

\D匹配任何非数字字符。

答案 2 :(得分:1)

\D元字符用于查找非数字字符,g修饰符用于执行全局匹配。因此,如果一起使用,它会搜索字符串中的非数字字符。

这可能会帮到你:http://www.w3schools.com/jsref/jsref_regexp_digit_non.asp

答案 3 :(得分:1)

\d - 匹配小数字符 \D - 与\d相反,匹配任何非十进制数字 g - g修饰符(javascript定义)用于执行全局匹配(查找所有匹配项,而不是在第一次匹配后停止)。
test - test()方法测试字符串中的匹配
例如:

var term = 'aaaa';
if (/\D/g.test(term)) {
    alert('yeah! non decimal found');
}
else {
    alert('baaa... only decimal found');
}

更多例子:

  • 'a1' - 返回true,因为字符串
  • 中有非小数
  • '1' - 返回false,因为那里只有小数。

答案 4 :(得分:0)

\ D元字符用于查找非数字字符,并在所有主流浏览器中都受支持。

g表示全局,并导致替换调用替换所有匹配,而不仅仅是第一个匹配。