gpt4 book ai didi

javascript - 正则表达式 - 匹配任何不以 + 开头但允许 +1 的字符串

转载 作者:数据小太阳 更新时间:2023-10-29 04:59:27 24 4
gpt4 key购买 nike

我需要一个 JavaScript 正则表达式来匹配任何不是以 + 字符开头的字符串。除了一个异常(exception),以 +1 开头的字符串是可以的。空字符串也应该匹配。

例如:

"" = true
"abc" = true
"+1" = true
"+1abc" = true
"+2" = false
"+abc" = false

到目前为止,我发现 ^(\+1|[^+]?)$ 处理了 +1 部分,但我似乎无法理解在不使第一部分无效的情况下允许更多字符。我认为 ^(\+1|[^+]?).*?$ 会起作用,但它似乎匹配所有内容。

最佳答案

首先,匹配组的第二部分不是可选的,因此您应该删除 ?。

其次,由于您只关心开头出现的内容,因此无需测试 $ 之前的整个字符串。

最后,要使空字符串返回 true,您还需要测试/^$/。

结果是:

/^(\+1|[^+]|$)/

例如:

/^(\+1|[^+]|$)/.test("");      // true
/^(\+1|[^+]|$)/.test("abc"); // true
/^(\+1|[^+]|$)/.test("+1"); // true
/^(\+1|[^+]|$)/.test("+1abc"); // true
/^(\+1|[^+]|$)/.test("+2"); // false
/^(\+1|[^+]|$)/.test("+abc"); // false

See demo

(控制台应该是打开的)

关于javascript - 正则表达式 - 匹配任何不以 + 开头但允许 +1 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8190815/

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