RegEx只允许英文文本,没有特殊字符

时间:2013-02-24 17:26:34

标签: javascript html regex validation

我想使用javascript验证文本字段(名字)。这样它应该只包含文本。没有特殊字符和没有数字。因为它只是名字,它应该只包含一个单词。 (没有空格)

允许:

  • 约翰
  • 约翰

不允许

  • john kennedy。
  • John kennedy。
  • john123。
  • 123john。

我尝试了这个,但它没有用。

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时,它仍然没有显示警告框。

2 个答案:

答案 0 :(得分:2)

nameReg需要/^[a-z]+$/i(或某些变量)。 ^匹配字符串的开头,$匹配结尾。这是“从字符串的开头到结尾的一个或多个a-z字符,不区分大小写。”您可以将+更改为*,但字符串可能为空。

http://jsfiddle.net/ExplosionPIlls/pwYV3/1/

答案 1 :(得分:0)

使用字符类:

var nameReg = /^[A-Za-z]*/;

如果没有包含[](使其成为字符类),则指定文字A-Za-z

<强>更新

在正则表达式的末尾添加$

var nameReg = /^[A-Za-z]*$/;

否则,john123返回有效,因为正则表达式匹配john并且可以忽略字符串的123部分。

工作演示:http://jsfiddle.net/GNVck/