gpt4 book ai didi

javascript - RegExp 限制除数字及其后的几个字母(如果它们持续存在)之外的所有符号

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

我尝试构建一个自定义 RegExp 模式,仅允许输入数字,此外,如果在这些数字之后输入了一些字母,它应该允许它们。 但是不仅适用于字母前没有输入数字的情况。

所以我做了一个很小的正则表达式,但它甚至允许输入 km 字母,开头不带任何数字。那就不好了...

谁能告诉我我哪里错了?

示例:

const matchPattern = new RegExp(/[^0-9(k|m)?]$/, 'gi')

'2323'.match(matchPattern) - // true
'23234k'.match(matchPattern) - // true
'23234m'.match(matchPattern) - // true
'k'.match(matchPattern) - // true, BUT should be false
'm'.match(matchPattern) - // true, BUT should be false

最佳答案

如果您可以使用negated character class只是,您可以使用:

^[^\D]+[^\W\d_a-jln-z]?$

Regex demo

  • ^ 字符串开头
  • [^\D]+ 匹配除数字之外的任何字符 1 次以上(匹配数字)
  • [^\W\d_a-jln-z]? 可选择匹配任何字符,除了单词字符、数字、_ 或 a-z 范围(k 除外) >米
  • $ 字符串结尾

const matchPattern = new RegExp("^[^\\D]+[^\\W\\d_a-jln-z]?$", "i");
console.log('2323'.match(matchPattern));
console.log('23234k'.match(matchPattern));
console.log('23234m'.match(matchPattern));
console.log('k'.match(matchPattern));
console.log('m'.match(matchPattern));

关于javascript - RegExp 限制除数字及其后的几个字母(如果它们持续存在)之外的所有符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59831970/

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