正则表达式除了所有空格和一个特殊字符外的所有内容

时间:2013-12-15 18:55:24

标签: javascript regex

现在已经好几个小时了,似乎无法让这个看似简单的正则表达式工作。我成功排除了使用^[^']+$[^']的单个字符并成功使用[\\S]的所有空格,但我无法弄清楚如何将它们组合在一个表达式中。

我尝试了很多不同的组合:

^(?=[^'])[\\S]$
[\\S-[']]

规则很简单 - 不能是所有空格,也不能包含撇号。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

如果您需要测试所有空格或撇号,那么您可以使用以下内容:

if (/'|^\s+$/.test(str)) {
    // is invalid
}

答案 1 :(得分:1)

我认为这样可以解决问题:

if (/'|^[ ]+$/.exec(str)) {
    // invalid...
}

答案 2 :(得分:1)

如果整个字符串是白色的,或者有撇号的任何实例,则以下情况属实。

if (/^\s+$|'/.test(s)) {
    // is invalid
}

正则表达式之间有一个交替

  • ^\s+$
    • ^:字符串开始
    • \s:空格(1次或更多次)
    • $:字符串结尾
  • ':撇号字符

如果这两个序列中的任何一个匹配,那么该字符串无效。