【发布时间】:2014-01-23 13:12:30
【问题描述】:
我收到一个 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>');
谁能看出正则表达式有什么问题?
谢谢,马克
【问题讨论】:
-
秉持古老的格言"don't parse HTML with regex":如果要替换元素的标记名,可以考虑使用jQuery's replaceWith()。或者,如果一定是纯JS,请看this function。
-
不是问题,但您不需要两种模式。只需将 br 的
/设为可选,也可以使用可选空格:/<br[\s\/]*>(.*?)/ig或/<br\b[^>]*>(.*?)/ig
标签: javascript regex