正则表达式是否允许一些特殊字符,但不允许在javascript中使用空格?

时间:2019-03-11 05:47:57

标签: javascript

我写了以下正则表达式来接受一个小写字母和一个大写字母,一位数字和一个特殊字符(!@ ##%)。

/^(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%]).*$/

但是上述正则表达式也接受空间。如何在javascript中使用正则表达式来限制空间。

2 个答案:

答案 0 :(得分:2)

最简单的方法是匹配模式中的[^ ]*而不是.*

/^(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%])[^ ]*$/
                                                      ^^^ change here

如果“空格”实际上是指任何空格字符,请改用\S

/^(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%])\S*$/

编辑:

如果您想只使用字母数字(大写或小写)以及一组固定的符号,请使用以下模式:

/^(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%])[A-Za-z0-9!@#$%]*$/

答案 1 :(得分:1)

尝试一下:

^(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%])[^ ]*$