我試過/^[^^]+$/
,它不允許^
,但也不允許我想允許一些特殊字符如<>(
。 有沒有任何正則表達式只允許一個符號(^
)?如何使正則表達式不接受只有帽子符號(^)
-1
A
回答
-1
/\^/g
將匹配「帽子」字符的所有實例。
/[^^]/g
將匹配不是「帽子」字符的所有字符。
使用+$
查找字符串末尾的一個或多個匹配項。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
0
你everything, but正則表達式看起來不錯。
我想你正在處理多行值。這裏的事情可能會有點棘手。我在regex101上創建了一個樣本,並按預期工作。我得到兩個(多行)匹配:dfasfs <>()
爲測試字符串str
,見下文。
但是,如果我在Chrome和Firefox控制檯中運行等效代碼,我只會得到一個匹配。
let regex = /^[^^]*$/mg;
const str = `^
^dasdfs
dasdfs^
dasdfsd^df
dfasfs
<>()
^
dfasfs
<>()`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
這看起來像Chrome的正則表達式引擎的限制或錯誤。
我玩了一下simulate the missing JS/.../s
dotatll修飾符與[\ s \ S],但無濟於事。
我在MS邊緣嘗試了相同的,並且我得到了兩場比賽。
所以,如果你處理多行,你可能會遇到瀏覽器特定的問題。
相關問題
- 1. 如何使正則表達式接受
- 2. 正則表達式接受貨幣符號和'+'符號
- 3. 正則表達式接受雙引號
- 4. 正則表達式接受@
- 5. 正則表達式接受 - 字符
- 6. 正則表達式只接受字母后跟逗號
- 7. 如何使正則表達式接受字符串以點
- 8. 正則表達式不接受。在C#
- 9. $ httpBackend不接受正則表達式
- 10. perl正則表達式「\ w」不接受「$」
- 11. 正則表達式不被接受
- 12. 不接受密碼正則表達式
- 13. Datamapper不接受正則表達式
- 14. 正則表達式只有14號
- 15. 正則表達式只接受幾個字母字符
- 16. 正則表達式只接受數字和特殊字符
- 17. PHP正則表達式[只接受選定的字符]
- 18. 更改正則表達式只接受指定的字符?
- 19. 正則表達式接受數只有一個,最後
- 20. 如何更改此正則表達式規則以不接受括號?
- 21. 正則表達式接受不同模式的4個字符
- 22. 只接受字符,數字和特殊字符的正則表達式不是
- 23. 正則表達式,只有
- 24. 「沒有符號」的正則表達式
- 25. 如何創建只接受字母數字字符的正則表達式?
- 26. 正則表達式接受逗號和冒號
- 27. 正則表達式只接受正數和小數
- 28. 正則表達式替換的帽
- 29. 正則表達式「符號不工作
- 30. 正則表達式不匹配```符號
您的問題描述沒有意義。請發佈[mcve]。 – melpomene
你問題的前提是錯誤的。 '/^[^^] + $ /。test('<>()')'返回'true',因爲所有這些字符都與提供的模式匹配。 – zzzzBov
@melpomene它確實有道理。對我來說,他很清楚他要求什麼。他希望有一個正則表達式,除了'^'符號之外,它們都可以匹配。 –