我想解析一个字符串并输出它,执行以下操作:
return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
如何识别标签内/外的字符串?我不需要存储字符串片段,只需处理它们并输出。
非常感谢
答案 0 :(得分:0)
我在下面写了一个示例,将字符串拆分为[code][/code]
标记,然后转义不在这些标记之间的所有html,然后使用join
将该数组放回字符串中命令。
请注意,如果缺少其中一个[code]
标记,程序将会出现意外行为。
string = "hello world<b>this is mohammad's amazing code:</b> [code]<br>mohammad<br>is<br>amazing[/code]<br>"
tempString = string.split(/(\[code\])(.+)(\[\/code\])/g)
var isCode = 0
for (var i = 0; i < tempString.length; ++i) {
if (tempString[i].match(/(\[code\])/g)) {
//code begins here
isCode = 1
} else if (tempString[i].match(/(\[\/code\])/g)) {
//code ends here
isCode = 0
}
if (isCode == 0) {
tempString[i]=tempString[i].replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
}
}
string = tempString.join("")
alert(string)
此演示也可以在jsfiddle
上播放