var reg = /^[0-9]+$/
reg.test('123') ===>true
reg.test('123213123s') ===>flase
这个正则表示的是:匹配的内容必须全是数字
var reg2 = /(?!^[0-9]+$)/
我的理解是:匹配的内容不全是数字
那么 reg.test('123')
应该===》flase
但是 事实上 reg.test('123')===> true
求解
var reg = /^[0-9]+$/
reg.test('123') ===>true
reg.test('123213123s') ===>flase
这个正则表示的是:匹配的内容必须全是数字
var reg2 = /(?!^[0-9]+$)/
我的理解是:匹配的内容不全是数字
那么 reg.test('123')
应该===》flase
但是 事实上 reg.test('123')===> true
求解
按照akira说的,你这个零宽断言的语法不对,(?!^[0-9]+$)匹配的是第一个边界符,和(\b|\B)的作用是一样的。
如果你的要求是“匹配的内容不全是数字”,应该这样写。
/([^\d]\d)/.test('123') // false
/([^\d]\d)/.test('123shy') // true
/([^\d]\d)/.test('ads') // false
多谢回复
正如你所说的 (?!^[0-9]+$)匹配的是第一个边界符
/\b\b/.test任何字符串都是true
同理 /(?![0-9])/ test任何字符串也是true
要给它加上具体匹配的内容 如
/(?!^[0-9]+$)^[^\s]+$/.test(‘123’) ===》true
不知道这样是否正确