Javascript:验证名称是否由一组字符组成的有效方法

Javascript: An efficient way to verify that a name is composed of a set of characters

本文关键字:一组 字符 方法 有效 验证 是否 Javascript      更新时间:2023-09-26

我正在编写一个系统,用户需要输入几个名称(由他们选择)。我想创建一个"名称验证器"。基本上,它需要确保字符串中作为名称输入的所有字符都是字母(小写和大写)、数字和一些特殊字符(如:.*_-+)。

现在,我想做这件事的方式是声明一个由所有允许的字符组成的巨大常量数组,并像这样迭代字符串:

for (i = 0; i < name.length; i++){
  if (permitted_chars.indexOf(name[i]) === -1) return false;
}
return true;

然而,由于允许的字符数组和名称都可能很大(更不用说实际编写数组了),这似乎是个坏主意。

还有别的办法吗?

使用正则表达式。如果你不熟悉它们,我强烈建议你读一些。从本质上讲,它们是一种非常强大的搜索和验证字符串的方法(列举它们的一些主要用途)。

var string = "Abcd_1234";
var regex = new RegExp("^[a-zA-Z0-9_]*$");
regex.test(string) //=> true

希望能有所帮助!

您可以使用正则表达式

var disallowChars = ['*', ',', '-'];
var regex = new RegExp('['''+disallowChars.join('''')+']');
regex.test("test") #=> false
regex.test("test*") #=> true
var string = "string to be, validated"
if(regex.test(string))
    alert('invalid input')