Javascript正则表达式问题 - 运行时错误JS5017:正则表达式中的语法错误

时间:2014-01-23 13:12:30

标签: javascript regex

我收到一条Javascript缩小错误说:

(9,8617-8631): run-time error JS5017: Syntax error in regular expression: /\<br>(.*?)/ig
(9,8757-8776): run-time error JS5017: Syntax error in regular expression: /\<p>(.*?)\<\/p>/ig

出现这些问题的javascript是:

$htmlPattern =  [
                    /\<br>(.*?)/ig,
                    /\<br\/>(.*?)/ig
                ];

$htmlReplace = [
                    '<p>$1</p>',
                    '<p>$1</p>'
                ];

...和...

$htmlContent = $htmlContent.replace(/\<p>(.*?)\<\/p>/ig, '<div>$1</div>');

任何人都可以看到注意到正则表达式的问题是什么吗?

谢谢,Mark

1 个答案:

答案 0 :(得分:3)

如果您真的想在这些表达式中使用第一个反斜杠,则必须对它们进行转义:

$htmlPattern =  [
                    /\\<br>(.*?)/ig,
                    /\\<br\/>(.*?)/ig
                ];

除非那是试图逃脱<,否则这是不必要的。在这种情况下,只需删除反斜杠:

$htmlPattern =  [
                    /<br>(.*?)/ig,
                    /<br\/>(.*?)/ig
                ];