function replaceTagToEntitySymbol(html){ var s = html.replace(/</g,'<') s = s.replace(/>/g,'>') return s;}这是一个字符串'<div class="html-editor-pop"><p class="html-editor-code-desc">生成代码,可复制粘贴使用:</p><textarea class="html-editor-code"></textarea></div>'希望用正则替换<符号到 lt; > 符号到 gt;(lt;和gt;省略了&,会被识别为< >)上面是自己写的一个函数,正则可否优化成一个正则表达式?
1 回答
jeck猫
TA贡献1909条经验 获得超7个赞
正则表达式的分组匹配:/(<|>)/g
var test = '<span>'.replace(/(<|>)/g, function(m) {
if(m == '<') {
return '<';
} else if(m == '>') {
return '>';
}
});
下面是稍微好点的方法:
但是有几个问题,Object.keys的兼容问题,如果map的key中包含要转义的字符,例如'.'等。需要在转换前处理,或者写key的时候注意。
var map = {
'<' : '<',
'>' : '>'
};
var test = '<span>'.replace(new RegExp('(' + Object.keys(map).join('|') + ')', 'g'), function(m) {
return map[m];
});
添加回答
举报
0/150
提交
取消