我想使用javascript验证文本字段(名字)。这样它应该只包含文本。没有特殊字符和没有数字。因为它只是名字,它应该只包含一个单词。 (没有空格)
允许:
不允许
我尝试了这个,但它没有用。
if( !validateName($fname))
{
alert("name invalid");
}
function validateName($name) {
var nameReg = /^A-Za-z*/;
if( !nameReg.test( $name ) ) {
return false;
} else {
return true;
}
}
修改 我试过了
var nameReg = /^[A-Za-z]*/;
但是当我输入john123或123john时,它仍然没有显示警告框。
答案 0 :(得分:2)
nameReg
需要/^[a-z]+$/i
(或某些变量)。 ^
匹配字符串的开头,$
匹配结尾。这是“从字符串的开头到结尾的一个或多个a-z字符,不区分大小写。”您可以将+
更改为*
,但字符串可能为空。
答案 1 :(得分:0)
使用字符类:
var nameReg = /^[A-Za-z]*/;
如果没有包含[]
(使其成为字符类),则指定文字A-Za-z
。
<强>更新强>
在正则表达式的末尾添加$
。
var nameReg = /^[A-Za-z]*$/;
否则,john123
返回有效,因为正则表达式匹配john
并且可以忽略字符串的123
部分。