if ((new RegExp("[^0-9A-Z]{5}")).test(self.accountVerInfo.mobileVerifyId())) {
return show_notification('error', 'Error', 'Please Enter Valid OTP');
}
我想限制特殊字符,长度也应该是5个字符。当我输入. /
时,它被允许。
答案 0 :(得分:0)
如果你打破当前的if语句:
if ((new RegExp("[^0-9A-Z]{5}")).test(self.accountVerInfo.mobileVerifyId())) {
return show_notification('error', 'Error', 'Please Enter Valid OTP');
}
您的支票[^0-9A-Z]{5}
是:
[^0-9A-Z]
- 任何不是数字或大写字母的字符{5}
正好有5个所以如果你输入'a' - 它会通过,但如果你输入'abcde',它就会失败。
您似乎有两个要求:如果出现传递:
而不是根据您的需要进行否定检查,将其更改为您想要的内容:
数字或大写= [0-9A-Z]
5个字符是{5}
然后您还需要检查整个ID,而不仅仅是它是否包含该ID(否则. ABCDE\
会通过),因此您需要添加^
和$
作为开始和结束-of string - 这些是在正则表达式的开头/结尾:
^[0-9A-Z]{5}$
但现在这是对允许的内容的检查,而不是不允许的内容,所以也要反转你的if:
if (!(new RegExp("^[0-9A-Z]{5}$")).test(self.accountVerInfo.mobileVerifyId())) {
return show_notification('error', 'Error', 'Please Enter Valid OTP');
}
答案 1 :(得分:0)
^ [0-9A-ZA-Z] {5} $
这个正则表达式将接受5个字符(大写或小写)/数字没有特殊字符。