regex 如何检查字符串对一组数字掩码的有效性?

isr3a4wc  于 2023-08-08  发布在  其他
关注(0)|答案(3)|浏览(67)

我有一个输入字段,我需要检查输入的有效性。
输入需要4位数字,掩码如下:

08## and 09##, 4###, 5###, 6###, 7###

字符串
字符串示例:

"1234" // invalid
"abcd" // invalid
"5000" // valid
"0810" // valid


什么是正则表达式,我可以用来检查字符串的有效性?
例如:

regex.test('1234')

hrirmatl

hrirmatl1#

你可以使用下面的正则表达式模式:

^(?:0[89]\d{2}|[4-7]\d{3})$

字符串
示例脚本:

var input = ["1234", "abcd", "5000", "0810"];

input.forEach(x => console.log(x + " => " + /^(?:0[89]\d{2}|[4-7]\d{3})$/.test(x)));


这里使用的正则表达式表示匹配:

  • ^从字符串的开始
  • (?:
  • 0[89]\d{2}以08或09开头,后跟任意2位数字
  • |
  • [4-7]\d{3}以4、5、6、7开头,后跟任意3位数字
  • )
  • $字符串结尾
shyt4zoc

shyt4zoc2#

你可以试试这个

const regex = /^(08\d{2}|09\d{2}|[4-7]\d{3})$/;
console.log(regex.test('1234')); 
console.log(regex.test('abcd'));
console.log(regex.test('ABCD'));
console.log(regex.test('ABcD'));
console.log(regex.test('5000'));
console.log(regex.test('0810'));

字符串

  • 字符串的开始。
  • 08\d{2}、09\d{2}匹配“08”和“09”后跟任意两位数字
  • [4-7]\d{3}匹配4到7之间的数字,后跟任意三个数字。
  • 字符串的$ end。
jvlzgdj9

jvlzgdj93#

您可以使用以下模式。

0[89]\d\d|[4-7]\d{3}

字符串
这里是 Wikipedia 关于正则表达式的文章。

语法非常基本,尽管看起来有些《双城之战》。
您可以提供要匹配的静态文本,当字符的值可以变化时,可以使用语法,即\d[4-7]
这并不需要很长的时间来学习,* 维基百科 * 的文章涵盖了它,完全。
还有一些很棒的书,O'Reilly Media有一些很好的书。

相关问题