我开始专门研究javascript和regexp。我正在努力提高自己生成正则表达式的能力。
我想做的是 - 我的 html 文件中有一个名称字段(它的形式是 ofc)
...
<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,}$/
当我测试它是否有效时,它根本不起作用。我在哪一部分失败了?
最佳答案
试试 /^[A-Za-z][A-Za-z0-9 -]*$/
当您在字符列表 ([]
) 中包含一个空格时,它将被允许出现在正在搜索的字符串中。
^[A-Za-z]
匹配第一个字符并表示它必须是某种字母。
[A-Za-z0-9 -]*$
将匹配第一个字符之后的所有剩余字符(如果存在),并确保它是字母数字,或者包含空格或破折号。
关于javascript - 正则表达式 - 仅第一个字符检查非字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19821572/