繁体   English   中英

仅在边界内替换特定字符

[英]Replace specific character only when within a boundary

仅在边界内替换特定字符。

例如,仅当用单引号括起来时才替换html实体。

输入:

<i>Hello</i> '<i>How are you</i>'

输出:

<i>Hello</i> '&lt;i&gt;How are you&lt;/i&gt;'

您可以使用replace回调:

var s = "<i>Hello</i> '<i>How are you</i>'";

var r = s.replace(/('[^']+')/g, function($0, $1) {
                     return $1.replace(/</g, '&lt;').replace(/>/g, '&gt;'); });
//=> <i>Hello</i> '&lt;i&gt;How are you&lt;/i&gt';

您需要使用多个正则表达式,首先在单引号内捕获文本,然后替换所有出现的字符。

var input = "<i>Hello</i> '<i>How are you</i>'";

var quoted = input.match(/'.*'/)[0];

var output = quoted.replace("<", "&lt;").replace(">", "&gt;");

// output == "<i>Hello</i> '&lt;i&gt;How are you&lt;/i&gt;'"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM