【发布时间】:2010-04-10 19:58:48
【问题描述】:
如何编写一个正则表达式来匹配这些规则的字符串?
- 1 个字母后跟 4 个字母或数字,然后
- 5 个字母或数字,然后
- 3 个字母或数字后跟一个数字和以下符号之一:! &@?
我需要允许输入为 15 个字符的字符串或 3 组,每组 5 个字符,由一个空格分隔。
我正在用 JavaScript 实现它。
【问题讨论】:
标签: javascript regex
如何编写一个正则表达式来匹配这些规则的字符串?
我需要允许输入为 15 个字符的字符串或 3 组,每组 5 个字符,由一个空格分隔。
我正在用 JavaScript 实现它。
【问题讨论】:
标签: javascript regex
我不会为你写出整个正则表达式,因为这是家庭作业,但这里有一些提示可以帮助你:
[A-Z] 匹配所有大写字母。 [a-z] 匹配所有小写字母。 [0-9] 匹配数字。你可以像[A-Za-z0-9]这样组合它们。{n} 这样的量词,所以 [A-Z]{3} 给你 3 个大写字母。[%@#] 匹配任何这些字符。\$(因为$ 匹配行尾)^ 和 $ 分别匹配行的开头和结尾。\s 匹配空白,但如果您清理输入,则不需要使用它。/[a-z]/i 中,i 忽略大小写。 【讨论】:
应该是这样的:
/^[a-z][a-z0-9]{4} ?[a-z0-9]{5} ?[a-z0-9]{3}[0-9][!&@?]$/i
如果您认为合适,请随意将 0-9 和 [0-9] 更改为 \d。
正则表达式简单易读。 ^ 和 $ 确保这是一个完整的匹配,因此代码前后没有多余的字符,/i 标志允许大写或小写字母。
【讨论】:
我会从tutorial开始。
注意量词(如{N})和字符类(如[a-zA-Z])
【讨论】:
^[a-zA-Z][a-zA-Z0-9]{4} ?[a-zA-Z0-9]{5} ?[a-zA-Z0-9]{3}[\!\&\@\?]$
【讨论】:
[!&@?] 就够了。