javascript 正则前瞻 如何完整匹配这个8位数字

想把window.location.hash中的纯8位数字匹配出来,可正则前瞻似乎javascript不支持。
如何实现这个功能:匹配出完整的8位数字。
当年话下
浏览 286回答 2
2回答

慕的地8271018

还是不太明白题主的意思像'#ff1020889900'这种情况,不能匹配是正确的结果,因为8位数字'10208899'之后还是数字,所以\D就无法匹配,整个正则表达式就无法匹配成功了。如果题主的意思是完整的8位数字的,就像你现在使用非捕获分组就够了,只是差一点。我的建议是(?:\D|)(\d{8})(?:\D|)分别在非捕获分组中多加了一个分支用于匹配空字符情况,这样就能匹配10208899的情况了。为此可以使用专门为捕获分组设计的exec方法。functiongetValue(str){varm=/(?:\D|)(\d{8})(?:\D|)/.exec(str);returnm?m[1]:'';}

莫回无

几个问题:前后除了\D,还需要^和$匹配行首和行尾的情况既然都非捕获组了,前后两个并不会作为结果返回,m就应该取1才对所以最终结果或者是/(?:\D|^)(\d{8})(?:\D|$)/returnm?m[1]或者/(\D|^)(\d{8})(\D|$)/returnm&&m[2]?m[2]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript