已經在這幾個小時了,似乎無法得到這個看似簡單的正則表達式的工作。我已經成功地排除了單個字符^[^']+$
或只是[^']
,併成功與所有空間[\\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的原因。 –