我用這個正則表達式匹配任何字符串只包含英文字母/^[a-zA-Z\s]+$/
JavaScript的正則表達式匹配一些特殊字符
現在我需要編輯這使匹配破折號「 - 」和點「」連同英文字母。 該字符串可能包含短劃線或點或非(只是字母)。
任何想法?
我用這個正則表達式匹配任何字符串只包含英文字母/^[a-zA-Z\s]+$/
JavaScript的正則表達式匹配一些特殊字符
現在我需要編輯這使匹配破折號「 - 」和點「」連同英文字母。 該字符串可能包含短劃線或點或非(只是字母)。
任何想法?
正則表達式/^[a-zA-Z\s\-\.]+$/
將匹配你所需要的。
無需在字符類逃脫'.'也'-'如果放在以下'['或之前']' –
@NaveedS它可能不是必要的,但更清楚我這樣的,你不不必擔心課堂上還有其他的東西。 –
@ G-Nugget ..只是一個建議。如果有人給你很好的建議,請收下。這是你學習的方式。否則你總會在你的一生中犯同樣的錯誤。 –
對於-
和.
和空間:
/^[-a-z\s.]+$/i
// "Foo-bar" OK
// "Foo.bar" OK
// "Foo bar" OK
// "Foo - bar" OK
// "Foo.bar-zaz" OK
// "Foo.bar-zaz TROZ" OK
對於-
或.
或空間:
/^[a-z\s]+$|^[-a-z]+$|^[a-z.]+$/i
// "Foo-bar" OK
// "Foo.bar" OK
// "Foo bar" OK
// "Foo - bar" FAIL
// "Foo.bar-zaz" FAIL
// "Foo.bar-zaz TROZ" FAIL
讓我解釋一下:
/i
忽略大小寫,所以你d on't需要A-Z
|
(管)做或給你。
^
您的字符串
$
在開始直到結束現在
只是內部字符限制[...]
:
把-
在開始的字符限制的是很好的做法,因爲它表明一個範圍在很多方面,所以在開始的時候避免錯誤。
\s
空白空間(無法範圍JS)
.
內部[.]
只是一個點,但外面是指任何字符(甚至不可見的)。
你需要在字符類的末尾加上'-'。否則,您正在創建從'\ s'到'的範圍。' –
@RohitJain不,我不是......我測試了代碼,請指出你的意思 –
當你在字符類中使用'-'時,它有一個特殊的含義,用作範圍。要從字面上匹配'-',你應該把它放在字符類的兩端。因此: - [[s - 。]'不同於: - [[ - s。]]或[[s .-]']。 –
的可能重複的[含在一個正則表達式字符托架連字符?](http://stackoverflow.com/questions/3697202/including-a-hyphen-in-a-regex-character-bracket) – RivieraKid