【问题标题】:Regular Expression - Only first character check non-letter characters正则表达式 - 仅第一个字符检查非字母字符
【发布时间】:2013-11-18 06:00:25
【问题描述】:

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

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

【问题讨论】:

  • 首先删除“Z”和“a”之间的空格。
  • 另外,使用rubular.com 一点一点地构建你的正则表达式,它会立即告诉你哪里出错了。
  • 是的,注意到错字感谢@caleb.breckon!感谢#Chandranshu 的提示,现在对它们进行测试

标签: javascript html regex


【解决方案1】:

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

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

【讨论】:

  • 那么整个语句对于这两个条件就足够了,如果我理解正确?
  • 按照你给的规则,是的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多