我需要正则表达式来验证长度为3-5个字符的字母数字字符串。我尝试了从网上找到的正则表达式,但它甚至没有正确地捕获字母数字。
var myRegxp = /^([a-zA-Z0-9_-]+)$/;
if(myRegxp.test(value) == false)
{
return false;
}
答案 0 :(得分:58)
将{3,5}
添加到您的表达式中,这意味着长度介于3到5之间
/^([a-zA-Z0-9_-]){3,5}$/
答案 1 :(得分:4)
你必须准确定义字母数字,但是
/^(\w{3,5})$/
应匹配长度为3-5的任何数字/字符/ _组合。
如果你还需要破折号,一定要逃避它(添加它,如下所示:\-
)
/^([\w\-]{3,5})$/
另外:^
锚意味着序列必须从行的开头(字符串)开始,并且它在结束时结束的$
行(字符串)。因此,您的value
字符串不得包含任何其他内容,否则它将不匹配。
答案 2 :(得分:1)
首先,这个脚本测试字符串N的字符串为3到5。
对于多语言(阿拉伯语,乌克兰语),您必须使用此
var regex = /^([a-zA-Z0-9_-\u0600-\u065f\u066a-\u06EF\u06fa-\u06ff\ufb8a\u067e\u0686\u06af\u0750-\u077f\ufb50-\ufbc1\ufbd3-\ufd3f\ufd50-\ufd8f\ufd92-\ufdc7\ufe70-\ufefc\uFDF0-\uFDFD]+){3,5}$/; regex.test('мшефн');
其他明智的 以下是英语仅限Alphannumeric
/^([a-zA-Z0-9_-]){3,5}$/
P.S以上剂量不接受特殊字符
最后一件事上面的剂量不占用空间作为测试它会失败如果你想要空间然后在0-9之后添加空间
\s
如果你想检查所有字符串的长度,请添加点。
var regex = /^([a-zA-Z0-9\s@,!=%$#&_-\u0600-\u065f\u066a-\u06EF\u06fa-\u06ff\ufb8a\u067e\u0686\u06af\u0750-\u077f\ufb50-\ufbc1\ufbd3-\ufd3f\ufd50-\ufd8f\ufd92-\ufdc7\ufe70-\ufefc\uFDF0-\uFDFD]).{1,30}$/;