我需要编写一个正则表达式,允许以这样的格式写入 9 个数字和/或数字:XXX/XXX/XXX
.但是,每个中它们的数量可能会有所不同,因此例如它可以是:只要最多有 4 个 x,就可以XX/XXXX/XXX
。
尽力了,但没有想出任何解决方案。
基于 JavaScript 的解决方案:
var input = prompt("Enter something");
var isValid = false;
if(/^d{1,4}/d{1,4}/d{1,4}$/.test(input) && input.replace(///g, "").length == 9) {
isValid = true;
}
console.log("Valid: ", isValid);
解释:
-
d
表示数字。 - 正斜杠
/
是一个特殊字符,因此需要像/
一样进行转义 - 使用
{0,4}
指定范围 - 验证模式后,您必须从输入中去除所有
/
,然后将长度与 9 进行比较
仅限正则表达式
(?=b.{11}b)[0-9]{1,4}/[0-9]{1,4}/[0-9]{1,4}
-
(?=b.{11}b)
正面展望断言您正好有 11 个字符(因为您有 9 位数字和 2 个斜杠( -
[0-9]{1,4}
一组最少 1 位和最多 4 位数字(您可以使用d
代替0-9
( -
/
斜杠逃脱
现场演示在这里。
不要忘记打开g
选项,这意味着您在第一场比赛后不会返回。