gpt4 book ai didi

如果自定义模式 100% 匹配,Javascript 正则表达式返回 true

转载 作者:行者123 更新时间:2023-11-28 17:08:22 25 4
gpt4 key购买 nike

在普通 Javascript 中,我想检查一个字符串。

const myRegex = /^\d+|#\d+/g;
console.log(`${myRegex.test("3#123#432#555")}`); // pattern is ok -> true
console.log(`${myRegex.test("3#123#432##555")}`); // two ## -> patter wrog -> but result is true (would like this to be false)
console.log(`${myRegex.test("3#123#432#55a5")}`); // a character in the string -> pattern wrong -> but result is true (should also be false)

我玩过https://regex101.com/r/tI1sOa/1/我使用这个正则表达式得到了完美的匹配,但我希望它在模式改变时返回 false。

模式定义应该是:number#number#number#number#number(所以首先我们有一个数字,后面跟着#number,可以任意多次)

如果模式是 number### 或 #number 或 numberLetter#number 或任何其他不遵守该模式的组合,则测试应返回 false。

如何使用正则表达式检查这一点?为什么我想出的方法没有按照我的预期工作?

谢谢!

最佳答案

^\d+|#\d+ 表示

  • 匹配字符串开头的一个或多个数字
  • 匹配字符串中任意位置的#后跟一个或多个数字。

换句话说,^ 是第一个替代方案的一部分,它不适用于第二个替代方案。

满足您要求的模式是:

^\d+(#\d+)+$
  • 匹配字符串开头的一个或多个数字,后跟一个或多个由 # 组成的序列,后跟一个或多个数字,直到字符串末尾

关于如果自定义模式 100% 匹配,Javascript 正则表达式返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55151445/

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