将正则表达式从C#传递到Javascript不起作用

时间:2018-04-17 14:38:51

标签: javascript regex vb.net

在我的代码中,我将以下正则表达式从VB.net传递给javascript以进行Post Box地址验证。 我从VB.net传递以下正则表达式

^ *((#\d+)|((box|bin)[-. \/\\]?\d+)|(.*p[ \.]? ?(o|0)[-. \/\\]? *-?((box|bin)|b|(#|num)?\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\d+)|(p *-?\/?(o)? *-?box)|post office box|((box|bin)|b) *(number|num|#)? *\d+|(num|number|#) *\d+)

它在javascript中运行良好。但它不区分大小写,当我们输入大写字母时就失败了。

我尝试使用以下正则表达式不区分大小写,但它完全失败。

^ *((#\d+)|((box|bin)[-. \/\\]?\d+)|(.*p[ \.]? ?(o|0)[-. \/\\]? *-?((box|bin)|b|(#|num)?\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\d+)|(p *-?\/?(o)? *-?box)|post office box|((box|bin)|b) *(number|num|#)? *\d+|(num|number|#) *\d+)/i

我的要求是我需要将RegEx从VB.net传递给javascript。 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

传递/i只有在使用文字语法时才有效:

var rex = /^X$/i;

在调用RegExp构造函数时,需要提供i选项作为参数:

var rex = new RegExp("^X$", "i");