我希望用户输入3个字符,它们应该是字母而不是数字和特殊字符
if(txt1.match('[A-Za-z]{3}')){}
Run Code Online (Sandbox Code Playgroud)
上述条件是否正确?
您可以使用i正则表达式标志使匹配大小写不敏感并简化正则表达式.此外,没有^和$,任何包含三个连续字母的字符串都将匹配.您需要分别添加^和$匹配字符串的开头和结尾.最后,如果您不需要捕获匹配的文本,则应使用test()正则表达式对象的方法来获取简单的布尔值:
if ( /^[a-z]{3}$/i.test(txt1) ) {}
Run Code Online (Sandbox Code Playgroud)
不,你没有使用正确的分隔符作为正则表达式,例如/reg/:
if(txt1.match(/[A-Za-z]{3}/)){}
Run Code Online (Sandbox Code Playgroud)
虽然match()将从传递的任何字符串构造一个正则表达式,但是当您需要开始转义字符时,您可能会感到困惑.
您还需要开始和结束锚,^并$分别以确保正则表达式从字符串到字符串的结尾开始匹配:
if(txt1.match(/^[A-Za-z]{3}$/)){}
Run Code Online (Sandbox Code Playgroud)
最后,如果您只想要一个true或false检查(在这种情况下,您),请使用test()而不是match():
if(/^[A-Za-z]{3}$/.test(txt1)){}
Run Code Online (Sandbox Code Playgroud)
test() 是正则表达式实例的方法,因此正则表达式在函数调用之前.