Javascript:验证名称是否由一组字符组成的有效方法
Javascript: An efficient way to verify that a name is composed of a set of characters
我正在编写一个系统,用户需要输入几个名称(由他们选择)。我想创建一个"名称验证器"。基本上,它需要确保字符串中作为名称输入的所有字符都是字母(小写和大写)、数字和一些特殊字符(如:.*_-+)。
现在,我想做这件事的方式是声明一个由所有允许的字符组成的巨大常量数组,并像这样迭代字符串:
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')
相关文章:
- fluxxor向一个flux实例添加一组以上的操作
- 我们怎样才能将内含子J用于一组特定的元素
- 使用linq.js按当前日期订购一组momentjs日期
- 如何在 Javascript 中用一组字符拆分子字符串上的字符串
- 按下退格键时删除一组字符(Javascript)
- 捕获一组两个特殊字符之间的所有内容,但允许角色在正文中出现一次
- 负向后看:匹配一个子字符串's不在一组字符的前面
- Regex,只允许一组特定的字符(Javascript)
- 如何将一组ascii字符转换为字符串
- 用于验证一组特殊字符的正则表达式
- 如何递归地查找字符串中的一组字符
- 在交互方面,不要允许文本输入中的第一个字符是一个空格或一组空格
- 将输入字段中的字符限制为一组字符
- Javascript:使用regEx一次更改多个字符或一组字符
- 从脚本中删除一组字符
- 找出一个字符串是否由一组特定的字符组成
- Regex替换一组字符
- Javascript:验证名称是否由一组字符组成的有效方法
- 如何比较单独的字符串值存储在一个数组字符?Javascript
- 我怎么能正则表达式一组字符在javascript?( /)