![](/img/trans.png)
[英]Regular expression match any character at the beginning end with specific string
[英]Regular Expression - Match any character except +, empty string should also be matched
我在JavaScript中使用的正則表達式的一部分遇到了一些麻煩。 我需要一種方法來匹配+
字符以外的任何字符,空字符串也應該匹配。
[^+]
幾乎是我想要的,除了它與空字符串不匹配。 我試過[^+]*
思考:“除了+
,零次或多次以外的任何字符”,但這匹配包括+
在內的所有內容。
[^+]
表示“匹配任何不是+
單個字符” [^+]*
表示“匹配任何數量不是+
的字符” - 這幾乎看起來像我想要的那樣,但如果第一個字符(甚至所有字符)都是+
,它將匹配零個字符。 使用錨點來確保表達式驗證整個字符串:
^[^+]*$
手段:
^ # assert at the beginning of the string
[^+]* # any character that is not '+', zero or more times
$ # assert at the end of the string
添加一個{0,1},使它只匹配零次或一次,不多也不少:
[^+]{0,1}
或者,正如FailedDev指出的那樣, ?
也有效:
[^+]?
正如預期的那樣,使用Chrome的JavaScript控制台進行測試顯示與"+"
不匹配,但與其他字符匹配:
x = "+"
y = "A"
x.match(/[^+]{0,1}/)
[""]
y.match(/[^+]{0,1}/)
["A"]
x.match(/[^+]?/)
[""]
y.match(/[^+]?/)
["A"]
如果您只是測試字符串以查看它是否包含+
,那么您應該使用:
^[^+]*$
僅當ENTIRE字符串沒有+
才會匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.