Javascript正则表达式:^ [^ / \ s /] + [a-z] {1,} [0-9] * [\ - \ _] * [^ \ /] [^ / \ s /] $

时间:2016-05-19 05:41:29

标签: javascript regex

我想创建一个正则表达式:

  • 除“ - ”和“_”
  • 外,不包含任何空格和特殊字符
  • 它应至少包含一个字母字符

我创建的正则表达式是:

^[^/\s/]+[a-z]{1,}[0-9]*[\-\_]*[^\/][^/\s/]$ 

它仅在我的字符串包含至少4个字符(包括1个字母)时才匹配。我试过https://regex101.com/#javascript有人可以帮我解决我在这里做错的事。

2 个答案:

答案 0 :(得分:2)

您需要了解lookaround。您问题的一个解决方案是:

/(?=^[\w-]{4,}$)(.*[a-z].*)/gmi
  • (?=^[\w-]{4,}$)将声明您的输入将仅包含az,数字,_-范围内的字符,其长度至少 4
  • (.*[a-z].*)确保a-z范围内的至少一个字符。

请参阅Demo

答案 1 :(得分:1)

使用基本的正则表达式原语,您可以使用:

/^[0-9_-]*[a-z]+[0-9a-z_-]*$/i

它可以正常使用这些示例输入字符串:

  • 999c123 -
  • a123-88asd
  • 9923 --_ B'/ LI>
  • 99-luftballoons
  • Z8f

与这些字符串不匹配:

  • 999
  • -51 -
  • - - -_-

它速度很快,几乎可用于每个正则表达式引擎,甚至是非标准(非扩展)grep。