Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅在边界内替换特定字符_Javascript_Regex - Fatal编程技术网

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

Javascript 仅在边界内替换特定字符,javascript,regex,Javascript,Regex,仅在边界内替换特定字符 例如,仅当包含在单引号内时才替换html实体 输入: <i>Hello</i> '<i>How are you</i>' Hello'你好吗' 输出: <i>Hello</i> '&lt;i&gt;How are you&lt;/i&gt;' 你好‘我/你好吗’ 您可以使用将替换为回调: var s = "<i>Hello</i> '<

仅在边界内替换特定字符

例如,仅当包含在单引号内时才替换html实体

输入:

<i>Hello</i> '<i>How are you</i>'
Hello'你好吗'
输出:

<i>Hello</i> '&lt;i&gt;How are you&lt;/i&gt;'
你好‘我/你好吗’

您可以使用
替换为回调:

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 s=“你好,你好吗”;
var r=s.replace(/('[^']+')/g,函数($0,$1){
返回$1.replace(//g',);});
//=>你好“我你好/我>”;

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

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;'"
var input=“您好”“您好”;
var quoted=input.match(/'.'/)[0];
var输出=引号。替换(“,”);
//输出==“你好‘我你好吗’”

试试看
你好吗。这只是一个字符串,我正在尝试和StackOverflow做的一样。