我有这个正则表达式来测试输入是否以字母" a"然后是6个数字。在线验证器似乎工作,但在JavaScript上没有。
这是代码:
function checkBookingReference (ref) {
var regex = /(^a|A)([0-9]{6})/;
return regex.test(ref);
}
如果我输入六个以上的数字,该函数返回true,并且它不应该。知道为什么吗?
答案 0 :(得分:5)
如果字符串中的任何地方存在匹配,那么正则表达式将返回true。如果您想确保整个字符串与之匹配,那么您需要使用ul
来匹配开头,并使用^
来匹配结尾。
$
答案 1 :(得分:1)
我就是这样做的:
return /^A[0-9]{6}$/i.test(ref);
答案 2 :(得分:0)
你需要在括号外移动克拉^
并在字母周围使用适当的组,然后松开尾随的美元符号$
。试试这个:
var regex = /^[aA][0-9]{6}/;
里面的括号表示"不是"。在外面它意味着"字符串的开头"。美元符号意味着"字符串结尾"。
答案 3 :(得分:0)
使用regex对象指定正则表达式,然后对其进行测试。试试这个
var regex = new RegExp("^a([0-9]{6})$","i");
return regex.test(ref);