已经在这几个小时了,似乎无法得到这个看似简单的正则表达式的工作。我已经成功地排除了单个字符^[^']+$
或只是[^']
,并成功与所有空间[\\S]
,但我不知道如何将它们组合在一个单一的表达式。正则表达式除了所有空格和一个特殊字符之外的所有内容
我已经尝试了很多不同的组合:
^(?=[^'])[\\S]$
[\\S-[']]
的规则很简单 - 不能是所有的空间,不能包含撇号。有人可以帮我从这里出去吗?
已经在这几个小时了,似乎无法得到这个看似简单的正则表达式的工作。我已经成功地排除了单个字符^[^']+$
或只是[^']
,并成功与所有空间[\\S]
,但我不知道如何将它们组合在一个单一的表达式。正则表达式除了所有空格和一个特殊字符之外的所有内容
我已经尝试了很多不同的组合:
^(?=[^'])[\\S]$
[\\S-[']]
的规则很简单 - 不能是所有的空间,不能包含撇号。有人可以帮我从这里出去吗?
我认为这会做的伎俩:
if (/'|^[ ]+$/.exec(str)) {
// invalid...
}
如果您需要测试所有的空格或撇号,那么你可以使用以下方法:
if (/'|^\s+$/.test(str)) {
// is invalid
}
也许我误解了Chris的这个问题,但我认为它会失败的字符串“克里斯的应用程序”,不是吗?它不会将其标记为无效。 –
啊......真正的数据。不能是所有空格或包含撇号。 –
@ChrisGessler然后可以应用组合的正则表达式。请参阅最新的答案。 – VisioN
以下将是如果属实整个弦都是白色的速度,或者有任何撇号的例子。
if (/^\s+$|'/.test(s)) {
// is invalid
}
正则表达式具有
^\s+$
之间的交替:
^
:开始字符串\s
:白色空间(1次以上)$
:结束字符串'
:撇号字符如果任一这两个序列的匹配则该字符串是无效的。
迟到了,但是 - 这似乎是共识。 +1提供解释。 –
是的......像一个魅力工作。我再次想到了解决方案。 –
@ChrisGessler,使用测试代替exec会更有效率。此外,这将错过制表符和其他空白字符。 –
@DanielGimenez - 感谢您的高举。我相信这就是为什么我首先使用\ S的原因。 –