我希望用户输入3个字符,它们应该是字母,而不是数字和特殊字符
if(txt1.match('[A-Za-z]{3}')){}
以上条件是否正确?
答案 0 :(得分:8)
您可以使用i
正则表达式标志使匹配大小写不敏感并简化正则表达式。此外,如果没有^
和$
,则包含三个连续字母的任何字符串都将匹配。您需要添加^
和$
以分别匹配字符串的开头和结尾。最后,如果您不需要捕获匹配的文本,则应使用正则表达式对象的test()
方法来获取简单的布尔值:
if ( /^[a-z]{3}$/i.test(txt1) ) {}
答案 1 :(得分:6)
不,你没有使用正确的分隔符来表示正则表达式,例如: /reg/
:
if(txt1.match(/[A-Za-z]{3}/)){}
虽然match()
将从传递的任何字符串构造一个正则表达式,但是当你需要开始转义字符时,你可能会感到困惑。
您还需要分别使用开始和结束锚点^
和$
,以确保正则表达式从字符串的开头到字符串的结尾匹配:
if(txt1.match(/^[A-Za-z]{3}$/)){}
最后,如果您只需要true
或false
支票(在这种情况下),请使用test()
代替match()
:
if(/^[A-Za-z]{3}$/.test(txt1)){}
test()
是一个关于正则表达式实例的方法,因此正则表达式在函数调用之前出现。
答案 2 :(得分:2)
这将匹配任何包含3个或更多字符的字符串,将其限制为严格的3个字母,请尝试
if(txt1.match('^[A-Za-z]{3}$')){}
答案 3 :(得分:2)
非常接近
if(txt1.match(/[A-Za-z]{3}/)) {}
注意:如果用户输入3个字母而不是数字或特殊字符,则上述内容将匹配。如果用户输入类似
的内容,它也会匹配234abc098
如果你想确保它只有3个字符,那么一定要把字符串的开头和字符串标记的结尾放在正则表达式中
^[A-Za-z]{3}$
答案 4 :(得分:2)
if (txt1.match(/^[A-Za-z]{3}$/)) { }
我改变了两件事。首先Javascript中的正则表达式以斜杠开头和结尾。其次,我添加了一个开始和结束字符(^和$)。这可以确保字符串的stat后跟3个字母,然后结束。意思是它必须正好是3个字母。
答案 5 :(得分:2)
没有。首先,语法是错误的,它应该使用正则表达式文字(实际上,字符串似乎也在这里工作):
txt1.match(/[A-Za-z]{3}/)
接下来,如果您想要3个字符而不是更多字符,请确保包含开始和结束锚点:
txt1.match(/^[A-Za-z]{3}$/)
答案 6 :(得分:2)
Javascript具有正则表达式的特殊语法:/regex/
。以下显示了正则表达式的正确实现:
if(txt1.match(/[A-Za-z]{3}/)){}
在String对象(如"string"
)和RegExp对象(如/regex/
)上有几个可用的RE(正则表达式)函数。如果您只想在不保存结果的情况下针对正则表达式测试字符串,建议使用RegExp.test
函数:
if(/^[A-Za-z]{3}$/.test(txt1)){}
注意:我添加了^
和$
因为它应匹配所有字符,包含3个字符是不够的。 ^
表示字符串的开头,$
表示结束。
答案 7 :(得分:1)
首先,你必须使用正斜杠而不是单引号来直接将正则表达式传递给javascript中的match()。
此外,如果连续出现在已检查的字符串中有3个字母,那么您目前正在检查表达式。如果您想确保用户只输入3个字母而不输入其他内容,请同时检查字符串的开头(^
)和结尾($
)与正则表达式。完整的表达式如下所示:
if(txt1.match(/^[A-Za-z]{3}$/)){}