繁体   English   中英

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

[英]Javascript: unable to understand the meaning of regex

不幸的是,我已经从某个站点实现了此代码,我不知道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是什么意思?

在正则表达式中, \\d与数字匹配,而\\D与非数字匹配。

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

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

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

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

这可能会帮助您: http : //www.w3schools.com/jsref/jsref_regexp_digit_non.asp

\\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,因为那里只有十进制。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM