6

我已经开始专门研究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,}$/

当我测试它是否有效时,它根本不起作用。我在哪一部分失败了?

4

1 回答 1

13

尝试/^[A-Za-z][A-Za-z0-9 -]*$/
当您在字符列表 ( []) 中包含一个空格时,它将被允许在正在搜索的字符串中。

^[A-Za-z]匹配第一个字符并说它必须是某种字母。
[A-Za-z0-9 -]*$将匹配第一个字符之后的所有剩余字符(如果它们存在),并确保它是字母数字,或者包含空格或破折号。

于 2013-11-06T20:02:58.053 回答