我需要验证我的说明文字区域,该文字区域只包含2个或少于2个数字。它还会包含文字。我尝试了**regex**
但是我没有结果。我试过像
if(value.match(/^\d{1,2}$/)){
return false;
}else{
return true;
}
意味着
有效:
this is 22 years old
有效期:
this is 222 years old
任何人都可以建议我解决。谢谢。
答案 0 :(得分:4)
没有任何实施代码,很难说......
但是你要从正则表达式中删除^
和$
,它们分别表示字符串的开始和结束。
您最好尝试查找超过2位数的数字,如果找到则返回true:
/\d{3,}/
对于包含3位数字的所有字符串都是如此,因此您知道它不好。
编辑:
if(!value.match(/\d{3,}/)){
return false;
}else{
return true;
}
//Or, as Julian Descottes *almost* pointed out, simply return the value of the function
return !!value.match(/\d{3,}/);
重新阅读OP,我不确定这是否完全符合预期的行为,因为它会检查3dBits或更多的NUMBERS,但不会计算文本中允许的数字位数
I am 24 and my brother is 29
这有四位数,好不好?
答案 1 :(得分:-2)
^\d{1,2}$
将不匹配任何文本,但它将匹配字符串的开头和结尾。因此,它将匹配“34”,但不匹配“1934”或“Babylon 5”。
您可能想要的是^\D*\d{1,2}\D*$
。侧翼 \ D *'表示“将0与无限数量的非数字字符匹配。”