[英]Regex Reject Consecutive Characters
我仍然是Regex的新手,基本上我需要做的是創建一個接受數字和字母但不允許輸入連續字符的規則。
例如:abcd - > ok,abbcd - > bad
我有大部分工作,但我無法弄清楚的部分是我如何禁止連續的字符?
我的代碼到目前為止:
/^[A-Za-z-0-9]{8,15}$/i
>>> r = /^((\w)(?!\2))+$/i
>>> r.exec('abbcd')
null
>>> r.exec('abcd')
[ 'abcd',
'd',
'd',
index: 0,
input: 'abcd' ]
\\2
部分是后引用,匹配組最后一個匹配的字符(\\w)
。 所以負面的前瞻(?!\\2)
意味着“沒有跟隨角色本身。” 如果我在這里使用的某些術語對您來說不熟悉,您應該在MDN的正則表達式文檔中查找它們。
要將接受的字符串的長度限制為OP中的8-15個字符,請將+
更改為{8,15}
:
>>> r = /^((\w)(?!\2)){8,15}$/i
>>> r.exec('abcd')
null
>>> r.exec('abcdabcd')
[ 'abcdabcd',
'd',
'd',
index: 0,
input: 'abcdabcd' ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.