爲什麼這個字符串這個正則表達式JavaScript的正則表達式中的特殊字符
/^[^-_]*([A-Za-z0-9]{3,})+[-_]?[^-_]*$/i
比賽?
,abc,,.
它清楚地說,該字符串應該只包含的
- 最少3個字母
- 接着任選的 - 或_
- 序列號1和2可以重複無限次
- 否 - 或_在字符串的開頭或末尾
正則表達式不應該允許任何其他字符比A-z
,0-9
和- or _
,不過不失,這使他們。
預先感謝
爲什麼這個字符串這個正則表達式JavaScript的正則表達式中的特殊字符
/^[^-_]*([A-Za-z0-9]{3,})+[-_]?[^-_]*$/i
比賽?
,abc,,.
它清楚地說,該字符串應該只包含的
正則表達式不應該允許任何其他字符比A-z
,0-9
和- or _
,不過不失,這使他們。
預先感謝
呃,其實,上面清清楚楚地寫着:
-
或_
(與,
匹配)的任何字符數abc
)-
或_
(符合無)-
或_
(匹配,,.
)您是不是要找:
/^[a-z0-9]{3,}(?:[-_][12]+)?$/i
修正,我誤解你的 「3點」。
/^[a-z0-9]{3,}(?:[-_][a-z0-9]{3,})*$/i
謝謝。我看了一下谷歌,但沒有找到'?'的意思。你能向我解釋一下嗎?在此先感謝 – JustBasti
非捕獲子模式。 –
[^-_]*
指0或多個字符不-
或_
,,
和,,.
滿足這一條件。
[^-_]*
將匹配第一個逗號,([A-Za-z0-9]{3,})+
將匹配abc
,[-_]?
將不匹配任何東西,[^-_]*
將用最後2個逗號和點。
請注意,使用i
標誌可讓您使用([A-Z0-9]{3,})+
或([a-z0-9]{3,})+
以及您當前的正則表達式。
如果你想:
然後我建議:
/^(?:[a-z]{2}[-_]?)+[a-z]$/i
如果 '信' 你真正想要的字母和數字,那麼我建議:
/^(?:[a-z0-9]{2}[-_]?)+[a-z0-9]$/i
[^-_]*
不是 「不 - 或者_」,但 「一切比其他 - 或者_」 爲您表達的所有其他部分可能不存在......
[^-_]*
使您的正則表達式匹配字符串。
http://regex101.com/ –
'^ [^ -_] *'表示:從'-'和'_'之外的任何字符開始的字符串重複0次或更多次。 – dfsq
您的步驟(1-4)基本上不準確,無法完整描述正則表達式。 – rockerest