正则表达式行首行尾^$,在线等!
 var str="g"
var re=/^[0-9]*$/
var rd=/[0-9]*/
str.match(re)
//null
str.match(rd)
//[""]

为什么这两个正则匹配出来的结果不同,麻烦大神详细解释下

2个回答

的意思是该字符可以出现0次或者多次,也就是对于^[0-9]$来说,0-9可以一次都不出现,从而整个字符串是空字符串

pom31000
pom31000 回复T_world: 大概了解了!非常感谢!
接近 4 年之前 回复
Runner__1
T_world * 的意思是该字符可以出现0次或者多次,也就是对于^[0-9]*$来说,0-9可以一次都不出现,从而整个字符串是空字符串
接近 4 年之前 回复

貌似是因为^代表字符串开头,$代表字符串结尾,所以re的意思就是字符串必须是若干个数字,不能包含其他字符,而rd没有^$符号,因此只要字符串中包含数字就认为是匹配的吧

pom31000
pom31000 为什么*号不改成+号呢,*和+区别不就是个0,这里0又无法匹配,就像这个^[0-9]*[1-9][0-9]*$,网上说是匹配正整数;为什么不写成^[0-9]+[1-9][0-9]+$
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐