我需要你的帮助,
如何修改下面的现有代码,使其不仅考虑用\n'替换所有\n',而且考虑使用javascript中的空格分隔符替换字符串中的所有<nbsp;>?
以下是需要修改的现有代码:
var txt = str.replace(/<br\s*\/?>/mg,"\n")发布于 2015-06-19 17:18:00
你可以用这样的方法
var txt = str.replace(/<br ?/?>/g, '\n').replace(/ /g, ' ');但是你不能用一个regex做两个替换
发布于 2015-06-19 17:16:02
如果您想用一个regexp来完成它,replace接受一个函数作为替换器,这样您就可以通过组匹配来利用这个函数:
var str = 'some string <br/> and something else';
var txt = str.replace(/(<br\s*\/?>| )/mg, function (match) {
return match === ' ' ? ' ' : '\n';
});
document.write('<pre>' + txt + '</pre>');
如果不是,您还可以将任意数量的replace调用链接在一起:
var str = 'some string <br/> and something else';
var txt = str.replace(/<br\s*\/?>/gm, '\n').replace(/ /gm, ' ');
document.write('<pre>' + txt + '</pre>');
使用一个replace的主要好处是它不需要检查整个字符串两次。然而,如果您需要添加/编辑要替换的实体,那么这确实会使代码更难阅读,并且可能会对代码进行维护。因此,根据要检查的字符串的长度,您需要在性能和可读性/可维护性之间取得平衡。
https://stackoverflow.com/questions/30943525
复制相似问题