搜索验证正则表达式在 JavaScript 中不起作用
Search validation regex not working in JavaScript
我想用正则表达式验证我的文本框。文本框的值应该是这样的 – “/word/Search” – 即正斜杠,然后是任何单词,然后再次是正斜杠,然后是固定单词 "Search".
这是一个示例输入:
/admin/Search
我尝试了以下模式,但不匹配:
[/\/][\w][/\/][\Search]
这个模式有什么问题?
我想这就是您要查找的表达式:
\[\w]*\Search
试试这个:
\/\w+\/Search
\/
– 不需要字符 class(即由 [
打开并由 ]
关闭)来匹配斜杠......当你可以的时候只需匹配斜杠(注意 \/
假定您是 using a regex literal rather than constructing a RegExp
object:对于后者 /
就可以了。)
\w+
– 一个或多个单词字符(同样不需要字符 class)
\/
– 结束斜杠(与开头相同)
Search
– 您期望在右斜线之后的固定词 Search
(也不需要字符 class)
您可以针对您在 regex fiddle 中提供的示例文本框输入尝试更新的模式。
(吹毛求疵)警告:
您可能想要收紧 word 子模式(即 \w+
),因为 \w
.. .
Matches any alphanumeric character including the underscore. Equivalent to [A-Za-z0-9_].
...according to MDN's JavaScript regular expressions reference。至少要注意它匹配数字和下划线。
如果你确实想收紧它,那么你有一个角色class的场合 – 例如:
[A-Za-z0-9]+
– 类似于 \w+
除了不匹配下划线
[A-Za-z]+
– 类似于 \w+
除了它不会匹配数字 或 下划线
由于每个人似乎都忽略了您的实际问题,所以您的正则表达式有什么问题:
- 字符类
[...]
。这使得 [\Search]
匹配 \Search
中的单个字符 , 而不是 字面词 Search
。
- 出于某种原因,当您实际上只想匹配一个正斜杠
/
. 时却写了 /\/
- 你要匹配多个字符,所以你得把
\w
改成\w+
。
结果:
/\w+/Search
我想用正则表达式验证我的文本框。文本框的值应该是这样的 – “/word/Search” – 即正斜杠,然后是任何单词,然后再次是正斜杠,然后是固定单词 "Search".
这是一个示例输入:
/admin/Search
我尝试了以下模式,但不匹配:
[/\/][\w][/\/][\Search]
这个模式有什么问题?
我想这就是您要查找的表达式:
\[\w]*\Search
试试这个:
\/\w+\/Search
\/
– 不需要字符 class(即由[
打开并由]
关闭)来匹配斜杠......当你可以的时候只需匹配斜杠(注意\/
假定您是 using a regex literal rather than constructing aRegExp
object:对于后者/
就可以了。)\w+
– 一个或多个单词字符(同样不需要字符 class)\/
– 结束斜杠(与开头相同)Search
– 您期望在右斜线之后的固定词Search
(也不需要字符 class)
您可以针对您在 regex fiddle 中提供的示例文本框输入尝试更新的模式。
(吹毛求疵)警告:
您可能想要收紧 word 子模式(即 \w+
),因为 \w
.. .
Matches any alphanumeric character including the underscore. Equivalent to [A-Za-z0-9_].
...according to MDN's JavaScript regular expressions reference。至少要注意它匹配数字和下划线。
如果你确实想收紧它,那么你有一个角色class的场合 – 例如:
[A-Za-z0-9]+
– 类似于\w+
除了不匹配下划线[A-Za-z]+
– 类似于\w+
除了它不会匹配数字 或 下划线
由于每个人似乎都忽略了您的实际问题,所以您的正则表达式有什么问题:
- 字符类
[...]
。这使得[\Search]
匹配\Search
中的单个字符 , 而不是 字面词Search
。 - 出于某种原因,当您实际上只想匹配一个正斜杠
/
. 时却写了 - 你要匹配多个字符,所以你得把
\w
改成\w+
。
/\/
结果:
/\w+/Search