我on Rails的3.0.9使用Ruby只有字符(無特殊字符,但重音字符)的字符串,空格和數字,我想驗證只能包含字符(不區分大小寫字符的字符串),空格和數字。正則表達式驗證
更多:
- 特殊字符不允許的(如:「£$%& /()= ^!?),除了
-
和_
; - 重音符號被允許(例如:A,E,E,O,...);
,我從this question知道正則表達式是^[a-zA-Z\d\s]*$
但這種做不驗證特殊字符和重音字符。
所以,我應該如何提高正則表達式?
我on Rails的3.0.9使用Ruby只有字符(無特殊字符,但重音字符)的字符串,空格和數字,我想驗證只能包含字符(不區分大小寫字符的字符串),空格和數字。正則表達式驗證
更多:
-
和_
;,我從this question知道正則表達式是^[a-zA-Z\d\s]*$
但這種做不驗證特殊字符和重音字符。
所以,我應該如何提高正則表達式?
我寫的^(?:[^\W_]|\s)*$
answer in the question you referred to(這實際上會有所不同,如果我早知道你想允許_和 - )。不是我自己的Ruby人,我沒有意識到Ruby默認不使用Unicode進行正則表達式匹配。
對不起,我缺乏Ruby的經驗。 What you want to do is use the u
flag.切換到Unicode(UTF-8),因此重音字符被捕獲。 這裏有你想要的圖案:
^[\w\s-]*$
And here it is in action at Rubular.這應該做的伎倆,我想。
的u
標誌works on my original answer as well,雖然是一個並不意味着允許_或 - 字符。
驗證字符串僅適用於不允許的字符。在這種情況下,|「和&
^[^|<>\"&]*$
當你說 「?,<,>,字符」,你的意思是 「字母」 的所有字符串包含字符A,7%和▲都是。字符 –
提供的正則表達式不允許特殊字符'!「£$%&/()=?^'... –
@Justin Morgan - 是的,我的意思是」字母「。爲我的模糊而道歉。 – Backo