所以我第一次尝试了一些非常基本的RegEx,并且我被告知有几种说明字符串开头和结尾的方法。
一种方式是'\A
'& '\Z
',另一个是'^
'& '$
'。
出于某种原因,在JS中运行它时,后者是实际工作的唯一选项。
有谁知道为什么可能会讨好?
var str = "123456",
pattern1 = new RegExp("^\\d{6}$"),
pattern2 = new RegExp("\A\\d{6}\Z");
if(pattern1.test(str)){
alert('pattern 1 match!');
}else{
alert('pattern 1 no match!');
}
if(pattern2.test(str)){
alert('pattern 2 match!');
}else{
alert('pattern 2 no match!');
}
答案 0 :(得分:4)
我想有人告诉你\A
和\Z
应该工作的人被误导了。根据{{3}},只有^
和$
才有效。
答案 1 :(得分:1)
使用正则表达式可视化工具进行一些游戏,例如Debuggex。当{em> PCRE 或 Python 被选为正则表达式风格(在下拉列表中)时,它显示your expression matches,但在使用时不匹配 Javascript 风味。
简而言之,Javascript只是doesn't support \A
and \Z
。