这是我的代码
var _phonenumber = '09000000000';
if _phonenumber.match(/\A0[5789]0\d{8}\z/)
console.log('valid');
else
console.log('invalid)';
但如果我输入了正确的手机,它仍会打印无效的09000000000
答案 0 :(得分:1)
match()方法在将字符串与正则表达式匹配时检索匹配。
如果字符串与表达式匹配,它将返回一个包含整个匹配字符串作为第一个元素的Array,后跟括号中捕获的任何结果。如果没有匹配项,则返回null。
在你的情况下,你错过了匹配的括号。
var _phonenumber = '09000000000';
if(_phonenumber.match(/\A0[5789]0\d{8}\z/))
console.log('valid');
else
console.log('invalid');
console.log(_phonenumber.match(/\A0[5789]0\d{8}\z/));

test()方法执行搜索正则表达式和指定字符串之间的匹配。返回true或false。
使用test()
会更好地适用于您的用例。
var _phonenumber = '09000000000';
if(/\A0[5789]0\d{8}\z/g.test(_phonenumber))
console.log('valid');
else
console.log('invalid');