Javascript RegExp 以匹配用户 ID 模式



我正在使用下面的 C# 代码来检测字符串的格式是E123456、H123456还是T123456。

Regex(@"b[eht]d{6}") 

我正在尝试使用Javascript等效物,但遇到了困难。

到目前为止,我有,但是每次应该返回true时它都返回false。

RegExp("b[eht]d{6}") 

任何帮助将不胜感激,或指向正则表达式格式的良好链接。

我相信

您遇到的问题是由于以下事实:当将 RegExp 构造函数与字符串参数一起使用时,斜杠和引号等特殊字符必须使用反斜杠字符进行转义。此外,如果要同时允许大写和小写匹配,请使用 i 标志。

要使用构造函数方法制作正则表达式,请使用:

new RegExp("\b[eht]\d{6}", "i")

或者要使正则表达式文本,请使用:

var regExName = /b[eht]d{6}/i

另外,如果你想在JavaScript中更多地尝试正则表达式,http://regexr.com/是一个很棒的网站,我强烈推荐!

您的正则表达式仅匹配小写字符,而您的用户 ID 具有大写的 E、H 和 T。所以要么在正则表达式字符串中使用大写 ( RegExp("b[EHT]d{6}") ) 或使用 i 标志 ( RegExp("b[eht]d{6}",'i')

  • 标志参考:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp
  • 大写解决方案的在线测试仪:https://regex101.com/r/yW9zF2/1
  • 标志解决方案的在线测试仪:https://regex101.com/r/mZ1vX9/1

转义字符串有一些麻烦,正如我所看到的,正则表达式应该不区分大小写。试试这个正则表达式:

/b[eht]d{6}/i

或者使用 RegExp 构造函数:

new RegExp("\b[eht]\d{6}", "i")

最新更新