搜索验证正则表达式不适用于JavaScript

时间:2015-01-03 09:27:55

标签: javascript regex validation

我想用正则表达式验证我的文本框。文本框的值应该是这样的 - “/ word / Search” - 即正斜杠,然后是任何单词,然后再向前斜杠,然后是固定单词“搜索”。

以下是输入示例:

/admin/Search

我尝试了以下模式,但它不匹配:

[/\/][\w][/\/][\Search]

这种模式有什么问题?

3 个答案:

答案 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)

由于每个人似乎都忽略了你的实际问题,你的正则表达式的错误是:

  1. 字符类[...]。这使[\Search]匹配单个字符 \Search字面词Search
  2. 出于某种原因,当您实际上只想匹配单个正斜杠/\/时,您写了/
  3. 您希望匹配多个字符,因此您必须将\w更改为\w+
  4. 结果:

    /\w+/Search
    

答案 2 :(得分:-1)

我认为这是你要找的表达方式:

\\[\w]*\\Search