gpt4 book ai didi

javascript - 正则表达式拒绝连续字符

转载 作者:太空狗 更新时间:2023-10-29 16:02:24 25 4
gpt4 key购买 nike

我对 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's Regular Expression Documentation上查找它们。 .

要将接受的字符串的长度限制在 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' ]

关于javascript - 正则表达式拒绝连续字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10311424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com