我正在使用javascript创建一个项目。为了验证目的,我想在我的项目中实现regex。验证就像增加订单的数字范围--这里是我的要求。
1-56 --------Pass
15 -----------Pass
1-5-9 --------Fail
asd988 -------Fail
50-49 ------- Fail我试着用这个
^[0-9]+-[0-9]+$这对我没有用
更新:更改是用户可以添加多个值,如:
1-56,56,3发布于 2020-06-11 17:13:55
您可以匹配由单个或两个数字组成的字符串,捕获数字并在有两个数字的情况下比较它们。如果没有匹配,或者如果第一个数字小于第二个,则只返回false:
const rx = /^(\d+)(?:-(\d+))?$/
const isValid = (string) => {
const m = rx.exec(string);
if (m && !m[2]) {
return true;
} else if (m && parseInt(m[2], 10) > parseInt(m[1], 10)) {
return true;
} else {
return false;
}
}
const strs = ['1-56,56,3', '1-56', '15', '1-5-9', 'asd988', '50-49'];
for (let s of strs) {
console.log( s, s.split(",").every(x => isValid(x)) )
}
/^(\d+)(?:-(\d+))?$/正则表达式匹配:
^ - string(\d+)的开始-第1组:一个或多个digits(?:-(\d+))? -一个可选的非捕获组匹配1或0出现的- -一个- char(\d+) -第2组:一个或多个数字-$ -结束string.
https://stackoverflow.com/questions/62329268
复制相似问题