isalpha替代JavaScript?

时间:2011-07-23 13:03:09

标签: javascript validation

我一直在尝试使用JavaScript验证表单的内容。我需要检查'Name'字段是否只包含字符和空格。如果存在任何其他字符,我想显示警告。这在C和Java中很容易做到,但我似乎无法在JavaScript中找到一个很好的替代品。我已经阅读过关于正则表达式但是没有更简单的替代方法,有点像内置函数吗?

2 个答案:

答案 0 :(得分:4)

不,不是我知道的。

尽管您可以使用

模拟isalpha最基本的功能
/^[ a-z]+$/i.test(string)

isalpha不同,它不支持区域设置,仅适用于简单的拉丁字母,相当于强制isalphaC区域设置中运行。

答案 1 :(得分:4)

使用正则表达式肯定更容易:

//Check for non-alphabetic characters and space
if(name.search(/[^A-Za-z\s]/) != -1)
  alert("Invalid name");

使用for循环:

//charCodeAt() gets the char code in a string
//Upper and lower bounds for upper case characters
var upperBoundUpper = "A".charCodeAt(0);
var lowerBoundUpper = "Z".charCodeAt(0);
//Upper and lower bounds for lower case characters
var upperBoundLower = "a".charCodeAt(0);
var lowerBoundLower = "z".charCodeAt(0);

for (var i = 0; i < name.length; i++) {
  var char = name.charCodeAt(i);
  if (char <= upperBoundUpper && char >= lowerBoundUpper)
    continue;
  else if (char <= upperBoundLower && char >= lowerBoundLower)
    continue;
  //Check for space
  else if (name[i] == " ")
    continue;
  else{  //Not recognized character - not valid
    alert("Invalid name");
    break;
  }
}

相对速度的jsPerf测试:http://jsperf.com/checking-is-alphabetic
在我的测试中,for循环运行得更快。