JS~~!!!! /[^\d]/g 是啥意思啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS~~!!!! /[^\d]/g 是啥意思啊相关的知识,希望对你有一定的参考价值。

比如这句 obj.value.replace(/[^\d]/g,'')

不知道楼主看过JS的正则表达式没有?如果没有,下面的解释你听不懂,如果有,则你不用问!

/[^\d]/g
这是一个正则表达式,在JS中正则表达式用//表示,跟在其后的是匹配选项,比如是g表示匹配全局。比如是i则表示忽略大小写,等等,这是匹配模式。
[]则是定界符,其中的字符会出现一次,而[^]则是一个否定运算,表示其中的字符不能出现!如[A-Z]就表示出现一次A-Z中的任何一个字符(当然是大写)如果是[AZ]则表示出现A或Z。[^A-Z]则表示出现的字符不能是A-Z中的任何一个!
而[^0-9]则表示不能出现0-9中的任何一个!其实咱也可以换一种说法,不能出现任何一个数字,那么就可以表示成为[^\d],其中\d是元字符,表示一个数字。那么这里就是不能出现任何一个数字而已!

但我也不知道为什么会这样写,纯粹是胡闹,写程序的人不知道\D是非数字吗?
也就是说[0-9]=[0123456789]=\d=[\d]其实加不[]无关的!
那么[^0-9]=[^0123456789]=[^\d]=\D=[\D]这写法也是可行的!为什么会有这种写法?!胡闹的吧?
参考技术A 1、.replace(a,b) b代替a;
2、[^xyz] 负值字符集合。匹配未包含的任意字符。例如, '[^\d]' 可以匹配 不包含数字(\d)的任意字符。
3、.value.replace(/[^\d]/g,''),就是将.value内非数字的值替换为空('');
例如 <input type="text" onkeyup="value=value.replace(/[^\d]/g,'') "/>

以上是关于JS~~!!!! /[^\d]/g 是啥意思啊的主要内容,如果未能解决你的问题,请参考以下文章

JS验证:身份证号码由15位或18位数字组成.

JS验证身份证的正则表达式?

JS 正则表达式:如 <input type="text" onkeyup="this.value=this.value.replace(/\D&#

正则表达式 只能输入数字和小数点,小数点后2位,并且支持FF3浏览器,应当怎么些?

js里 str.replace(/^\s*(.*?)[\s\n]*$/g, '$1')

win7用CMD运行出乱码 用批处理文件运行的REM - BY WINDOWS SETUP - LH d:\WIN95\COMMAND\MSCDEX.EXE /d:M