1

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

允许:

  • 约翰
  • 约翰

不允许

  • 约翰肯尼迪。
  • 约翰肯尼迪。
  • 约翰123。
  • 123约翰。

我试过这个,但它不工作。

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

4

2 回答 2

2

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

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

于 2013-02-24T17:36:48.107 回答
0

使用字符类:

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

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

更新:

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

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

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

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

于 2013-02-24T17:29:24.297 回答