正则表达式,表示以 '/' 分隔的九个字母



我需要编写一个正则表达式,允许以这样的格式写入 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);

解释:

  1. d表示数字。
  2. 正斜杠/是一个特殊字符,因此需要像/一样进行转义
  3. 使用{0,4}指定范围
  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选项,这意味着您在第一场比赛后不会返回。

最新更新