我正在使用下面的C#代码来检测字符串是否格式化为E123456,H123456或T123456。
Regex(@"\b[eht]\d{6}")
我正在尝试使用等效的Javascript但是遇到了困难。
到目前为止,我有,但每当它应该返回true时它返回false。
RegExp("\b[eht]\d{6}")
任何帮助都将受到赞赏,或者是RegExp格式化的良好链接。
答案 0 :(得分:1)
我相信你遇到的问题是因为当使用带有字符串参数的RegExp构造函数时,必须使用反斜杠字符转义特殊字符(如斜杠和引号)。另外,如果要允许大写和小写匹配,请使用i
标志。
要使用构造函数方法创建RegExp,您可以使用:
new RegExp("\\b[eht]\\d{6}", "i")
或者制作一个RegExp文字,请使用:
var regExName = /\b[eht]\d{6}/i
此外,如果您想在JavaScript中使用RegEx进行更多实验,http://regexr.com/是一个很棒的网站,我强烈推荐!
答案 1 :(得分:0)
您的正则表达式仅匹配小写字符,而您的用户ID具有大写字母E,H和T.因此,要么在正则表达式字符串中使用大写字母(RegExp("\b[EHT]\d{6}")
),要么使用i
标记({ {1}})
答案 2 :(得分:0)
转义字符串有一些问题,因为我看到正则表达式应该不区分大小写。试试这个正则表达式:
/\b[eht]\d{6}/i
或使用RegExp
构造函数:
new RegExp("\\b[eht]\\d{6}", "i")