使用javascript验证正则表达式时返回错误

时间:2019-03-15 13:58:32

标签: javascript regex regex-group

嘿,有人可以看看我的正则表达式吗?我正在尝试验证一个regex组,但是它过于贪婪地匹配。

/*Should match only 16 characters in total & must begin with BE and follow by 14 digits */ 
 
var re = /(?<iban>[/BE\B/(?={0-9})])/gm
     
let correctIban  = 'BE71096123456769'              // => should match
let badIbanOne   = 'BE13466123456767590kd'         // => should NOT match
let badIbanTwo   = 'BE13466123456767590679080176'  // => should NOT match
let badIbanThree = 'AZ71096123456769'              // => should NOT match

console.log(re.test(correctIban));   // => true
console.log(re.test(badIbanOne));    // => false
console.log(re.test(badIbanTwo));    // => false
console.log(re.test(badIbanThree));  // => false

谢谢。

编辑:感谢您的帮助。以下是ES2018中针对想要了解的人的具有捕获组语法的代码:(?<iban>^BE\d{14}$)

1 个答案:

答案 0 :(得分:1)

Conversion to cell from double is not possible.

说明:

  • var re = /^BE\d{14}$/; -标记表达式的开始
  • ^-文字字符'BE'
  • BE-任何数字(与[0-9]相同)
  • \d-量词-精确14
  • {14}-标记表达式的结尾

不需要所有多余的东西。

您可以在这里尝试:https://regex101.com/r/4wF3NG/1