0

我需要验证我的描述文本区域中仅包含 2 位或少于 2 位数字的文本。它还将包含文本。我尝试过**regex**但没有结果。我尝试过

if(value.match(/^\d{1,2}$/)){
    return false;
}else{
    return true;
}         

方法

有效的 :

this is 22 years old

无效的 :

this is 222 years old

任何人都可以建议我任何解决方案。在此先感谢。

4

2 回答 2

4

没有任何实现代码很难说...

但是您需要从您的正则表达式中删除^and $,它们分别表示字符串的开头和结尾。

您最好尝试查找超过 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,我不确定这是否正是预期的行为,因为它检查 3digits 或更多的 NUMBERS,但不计算文本中允许的数字数量

I am 24 and my brother is 29

这有4位数字,是好是坏?

于 2013-09-07T09:09:02.873 回答
-2

^\d{1,2}$不会匹配任何文本,但会匹配字符串的开头和结尾。因此,它将匹配"34"但不匹配"1934""Babylon 5"

你可能想要的是^\D*\d{1,2}\D*$. 侧面的\D* 的意思是“将 0 匹配到无限数量的非数字字符”。

于 2013-09-07T09:10:55.717 回答