0

嗨,我有这个简单的代码:

 preg_replace('/[\r\n]+/', '</br>',$string);

我想在 JS 中复制相同的代码,所以我这样做:

string.replace('/[\r\n]+/','</br>');

但这行不通。

我也想让它递归使用g,这可能吗?

谢谢

4

2 回答 2

4

replace()接受类型的第一个参数RegExp并且您正在传递一个字符串,您需要更改为:

string.replace(/[\r\n]+/,'</br>');

另外,replace()不是静态方法,换句话说,您不会这样称呼它。相反,您在要执行替换的字符串上调用它。

如果你想使用,g那么你可以:

string.replace(/[\r\n]+/g,'</br>');
                        ^
于 2013-10-31T20:39:45.363 回答
2

在 JavaScript 中,.replace支持字符串和正则表达式作为替换内容。你给它发送了一个字符串,它不知道它是一个正则表达式。它正在寻找文字 string '/[\r\n]+/'

您需要使用正则表达式文字:

string.replace(/[\r\n]+/g,'</br>');

是的,您可以使用这样的正则表达式,不带引号!

new RegExp如果要使用字符串作为正则表达式,可以使用构造函数:

string.replace(new RegExp('/[\r\n]+/', 'g'),'</br>');
于 2013-10-31T20:40:42.313 回答