2
A
回答
4
你的正則表達式是錯誤的。試試這個:
/^[[email protected]'-]+$/
OR
/^[\[email protected]'-]+$/
連字符必須在字符類,以避免逃逸內第一個或最後一個位置。此外,如果是不允許的空字符串,則使用+
(1或多個),而不是*
(0或更多)
說明:
^ assert position at start of the string
[\[email protected]'-]+ match a single character present in the list below
Quantifier: Between one and unlimited times, as many times as possible
\w match any word character [a-zA-Z0-9_]
@'- a single character in the list @'- literally
$ assert position at end of the string
3
0
當使用字符類一個連字符,請務必將其放置在字符類的結尾作爲最佳實踐。
原因是因爲連字符用於表示字符類中字符的範圍,並且當它位於類的末尾時,它不會創建任何範圍。
0
我最好的選擇是:
/[A-Za-z-\'[email protected]]+/g
0
您可以使用以下(在Java中):
String acceptHyphenApostropheUnderscoreRegEx = "^(\\p{Alpha}*+((['_-]+)\\p{Alpha})?)*+$";
如果你想擁有的空間和@同時(如一些人上面給出)嘗試:
String acceptHyphenApostropheUnderscoreRegEx = "^(\\p{Alpha}*+((\\s|['@_-]+)\\p{Alpha})?)*+$";
相關問題
- 1. 正則表達式(連字符,下劃線和句點)
- 2. 正則表達式允許使用下劃線,連字符和'&'符號
- 3. 正則表達式字母,數字,短劃線和下劃線
- 4. 正則表達式匹配下劃線之間符號
- 5. Java的正則表達式下劃線
- 6. 用下劃線替換特殊字符的正則表達式
- 7. 正則表達式不允許除符號和下劃線以外的符號
- 8. 正則表達式下劃線
- 9. 下劃線跳過正則表達式
- 10. 正則表達式忽略下劃線
- 11. 正則表達式匹配下劃線
- 12. 下劃線以及正則表達式
- 13. 正則表達式包含下劃線
- 14. 用於撇號的正則表達式
- 15. 包含撇號的正則表達式
- 16. 帶撇號的字符串的正則表達式
- 17. 正則表達式爲英文字母,連字符和下劃線
- 18. 阿爾法正則表達式,連字符,下劃線和點字
- 19. 正則表達式匹配字符串,不包括下劃線
- 20. 正則表達式強制字母數字,但允許撇號和連字符?
- 21. Java正則表達式匹配帶撇號的字符串
- 22. 正則表達式只允許字母數字,逗號,連字符,下劃線和分號
- 23. Ruby的正則表達式的星號/下劃線強/ em?
- 24. 正則表達式替換撇號
- 25. 撇號在正則表達式
- 26. 正則表達式匹配撇號
- 27. Python正則表達式匹配撇號
- 28. 正則表達式來刪除撇號
- 29. 正則表達式匹配與撇號
- 30. IIS7 301重定向正則表達式以連字符替換下劃線
看看我的答案。它也匹配@和數字 –