我正在编写一些代码中的这些内容
txt = txt.replaceAll('\n','').replaceAll('<b>','[bold]').replaceAll('</b>','[/bold]')
.replaceAll('<strong>','[bold]').replaceAll('</strong>','[/bold]')....
其中replaceAll是String.prototype扩展名。这很完美,但我想知道 -
以这种方式链接太多方法有什么缺点吗?使用在“oner”中完成工作的正则表达式可能更好吗?如果是这样,正则表达式会是什么样子? (我对正则表达式不是很好)
答案 0 :(得分:1)
这很好。正则表达式的替代方案也很简单,你基本上只需要使用替换,并确保逃避需要转义的内容:Live Example | Live Source
var replacements = {
'\n': '',
'<b>': '[bold]'
'</b>': '[/bold]',
'<strong>': '[bold]',
'</strong>': '[/bold]'
// ...
};
txt = txt.replace(/\n|<b>|<\/b>|<strong>|<\/strong>/g, function(m) {
return m in replacements ? replacements[m] : m;
});
答案 1 :(得分:1)
把它们连在一起很好。但是不要把它们放在一条线上。如果重新格式化代码,则更容易阅读:
txt = txt
.replaceAll( '\n', '' )
.replaceAll( '<b>', '[bold]' )
.replaceAll( '</b>', '[/bold]' )
.replaceAll( '<strong>', '[bold]' )
.replaceAll( '</strong>', '[/bold]' );
这种风格在jQuery链中非常有用:
$('<div>Test</div>')
.css({ fontSize: '16px' })
.attr({ title: 'Test' })
.appendTo( 'body' );