0
A
回答
4
注意,\w
(和\W
,\b
和\B
)是英語爲中心。 \w
只是意味着[A-Za-z0-9_]
,其中A-Z
只表示26個英文字母。其他字母不被JavaScript內置的字符類視爲「單詞」的一部分。
你需要建立一個字符類,包括所有你想作爲單詞字符對待的字母(然後使用那個無論是「非字字符」的否定版本)。
但這不是唯一的問題。正則表達式說:
匹配一個英文單詞字符的字符串的開頭,或比賽在字符串的結束字符的這個名單中的一個。
的|
操作是相當貪婪,在這種情況下,把^[\w]
和[åäöæøÅÄÖÆØ]$
作爲替代品。我沒有得到你想要的印象。
「tå」沒問題,但「åå」不是。
我想這取決於你的意思是「好」。兩個匹配表達式:
console.log("tå".match(/^[\w]|[åäöæøÅÄÖÆØ]$/)); // ["t", index: 0, input: "tå"]
console.log("åå".match(/^[\w]|[åäöæøÅÄÖÆØ]$/)); // ["å", index: 1, input: "åå"]
"tå"
匹配,因爲它的^[\w]
備選匹配。 "åå"
匹配,因爲它匹配[åäöæøÅÄÖÆØ]$
替代方案。
我該如何讓它接受從åäöæ?ÅÄÆÆØØ開始的單詞?
如果目標是隻接受包含一個精確的字,其中「字」包括數字和下劃線組成的字符串(因爲\w
一樣),則:
/^[A-Za-z0-9_åäöæøÅÄÖÆØ]+$/
0
爲什麼你認爲失敗?我不會把\ w放在方括號中,但是各種系統似乎都允許這樣做,並且以下兩個文本都與正在測試的文本匹配。
的Javascript
var test = 'åå';
if (test.match(/^[\w]|[åäöæøÅÄÖÆØ]$/)) { alert("Match"); }
PHP
echo(preg_match("/^[\w]|[åäöæøÅÄÖÆØ]$/","åå")."</br>");
什麼是你想在這裏實現?
相關問題
- 1. 特殊字符的正則表達式?
- 2. 正則表達式的特殊字符
- 3. 特殊字符的正則表達式
- 4. 正則表達式的特殊字符
- 5. JavaScript特殊字符/正則表達式
- 6. 正則表達式特殊字符
- 7. 正則表達式與特殊字符
- 8. 正則表達式和特殊字符
- 9. 正則表達式特殊字符
- 10. 正則表達式與特殊字符
- 11. 正則表達式與特殊字符
- 12. C#正則表達式,特殊字符
- 13. PHP正則表達式特殊字符
- 14. 正則表達式用於數字和特定特殊字符
- 15. 獲取Java中使用正則表達式的特殊字符
- 16. 「 - 」,而使用正則表達式匹配的特殊字符,C#
- 17. 在Ruby中的正則表達式使用特殊字符
- 18. 正則表達式和正則表達式的特殊字符在JavaScript
- 19. 如何使用正則表達式檢查特殊字符?
- 20. PowerShell中,使用正則表達式和特殊字符
- 21. 使用正則表達式檢索特殊字符
- 22. 使用正則表達式和特殊字符搜索CoreData
- 23. 驗證使用正則表達式重複特殊字符
- 24. 在Java中使用正則表達式逃脫特殊字符^
- 25. 拆分使用正則表達式與特殊字符
- 26. 使用正則表達式限制特殊字符
- 27. 使用Java正則表達式解析特殊字符
- 28. 如何使用正則表達式檢查特殊字符
- 29. Java正則表達式不能使用特殊字符
- 30. MySQL使用正則表達式刪除特殊字符
刪除'$'。 '[]'表示一個字符類。 – devnull
*「」tå「沒問題,但是」åå「不是。」*他們都符合表達。''tå''匹配,因爲它匹配'^ [\ w]'選項。 ''åå''匹配,因爲它匹配'[åäææÅÅÄÄÄÆÆÆØ] $'替代品。 –