我开始专门研究javascript和regexp。我正在努力提高自己生成正则表达式。
我要做的是 - 我的html文件中有一个名字字段(以c的形式)
...
<label for="txtName">Your Name*: </label>
<input id="txtName" type="text" name="txtName" size="30" maxlength="40">
...
在我的js文件中,我试图检查名称不能以任何非字母字符开头,仅适用于第一个字符。 并且整个领域的包含除了破折号和空间之外的任何特殊字符。
他们不能以任何非字母字符开头;
/^[A-Z a-z][A-Z a-z 0-9]*$/
除了破折号和空格外,它们不能包含任何符号;
/^*[[&-._].*]{1,}$/
当我测试它是否有效时,它根本不起作用。我失败了哪一部分?
答案 0 :(得分:8)
尝试/^[A-Za-z][A-Za-z0-9 -]*$/
当您在字符列表([]
)中包含空格时,将允许在正在搜索的字符串中。
^[A-Za-z]
匹配第一个字符并说它必须是某种字母。
[A-Za-z0-9 -]*$
将匹配第一个字符后面的任何剩余字符(如果存在),并确保它是字母数字,或包含空格或短划线。