Regexp用于捕获任何普通字符+数字+空格但没有任何其他特殊字符

时间:2017-09-14 10:39:23

标签: javascript regex

所以我需要一个抓住的正则表达式:

  • 普通字符
  • -
  • 任何空间

我尝试使用/[a-z0-9\-]*/g,但在https://regex101.com/r/Vpc7UX/1/上工作时几乎完美(无法识别空格),当我在javascript中使用时,它根本不起作用:

(/[a-z0-9\-]*/gi).test(text)

虽然一个简单的(/[^a-z0-9]/gi).test(text)(只接受字符和数字,没有空格而没有-)没有任何问题,但我认为正则表达式是错误的。

我希望这适用于:

  • “你好,世界”
  • “Hello world”
  • 的 “HelloWorld”
  • “Hello World”

但不是:

  • “你好@世界”
  • 的 “Hello&安培;世界”
  • “程序hello_world”

有关regexp + javascript问题的任何帮助吗?我做错了什么?

非常感谢。

1 个答案:

答案 0 :(得分:1)

使用锚点并添加空格:

(/^[a-z0-9\s-]*$/gi).test(text)
  ^_______^^___^