我想用正则表达式验证我的文本框。文本框的值应该是这样的 - “/ word / Search” - 即正斜杠,然后是任何单词,然后再向前斜杠,然后是固定单词“搜索”。
以下是输入示例:
/admin/Search
我尝试了以下模式,但它不匹配:
[/\/][\w][/\/][\Search]
这种模式有什么问题?
答案 0 :(得分:4)
请改为尝试:
\/\w+\/Search
\/
- 没有真正需要一个字符类(即由[
打开并由]
关闭)以匹配斜杠...当你可以匹配斜杠时(注意\/
假设你是using a regex literal rather than constructing a RegExp
object:对于后者/
可以做到这一点。)\w+
- 一个或多个单词字符(类似地不需要字符类)\/
- 结束斜线(与开头时相同)Search
- 您希望在结束斜杠之后的固定字Search
(也不需要字符类)您可以针对regex fiddle中提供的示例文本框输入尝试更新的模式。
(Nitpicky)警告:
您可能想要收紧字子模式(即\w+
),因为\w
...
匹配包括下划线在内的任何字母数字字符。相当于[A-Za-z0-9 _]。
... according to MDN's JavaScript regular expressions reference。至少要注意它与数字和下划线匹配。
如果你确实想要收紧它,那么你就有机会参加角色课 - 例如:
[A-Za-z0-9]+
- 与\w+
类似,但不会与下划线匹配[A-Za-z]+
- 与\w+
类似,但不会与数字或下划线匹配答案 1 :(得分:1)
由于每个人似乎都忽略了你的实际问题,你的正则表达式的错误是:
[...]
。这使[\Search]
匹配单个字符 \Search
,不字面词Search
。/\/
时,您写了/
。\w
更改为\w+
。结果:
/\w+/Search
答案 2 :(得分:-1)
我认为这是你要找的表达方式:
\\[\w]*\\Search