Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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_Quotes_Smart Quotes - Fatal编程技术网

Javascript 用印刷体开头引号替换奇数匹配,用印刷体结尾引号替换偶数匹配

Javascript 用印刷体开头引号替换奇数匹配,用印刷体结尾引号替换偶数匹配,javascript,regex,quotes,smart-quotes,Javascript,Regex,Quotes,Smart Quotes,我试图用排版引号(«和»)替换文本中的常规引号符号(“) 有没有办法用«替换奇数引号匹配,用»替换偶数匹配 所以:你好“世界”! 变成:你好«世界» 此外,如果文本没有偶数个引号,那么它应该不会有任何问题,因为这是为了“动态”执行的 谢谢你的帮助!我想出了另一种方法,但我不确定哪种方法更“优化”: /** * @param {string} input the string with normal double quotes * @return {string} string with th

我试图用排版引号(«和»)替换文本中的常规引号符号(“)

有没有办法用«替换奇数引号匹配,用»替换偶数匹配

所以:你好“世界”! 变成:你好«世界»

此外,如果文本没有偶数个引号,那么它应该不会有任何问题,因为这是为了“动态”执行的


谢谢你的帮助!

我想出了另一种方法,但我不确定哪种方法更“优化”:

/**
 * @param {string} input the string with normal double quotes
 * @return {string} string with the quotes replaced
 */
function quotify(input) {
  var idx = 0;
  var q = ['«', '»'];
  return input.replace(/"/g, function() {
    var ret = q[idx];
    idx = 1 - idx;
    return ret;
  });
}

我想出了另一种方法,但我不确定哪一种更“优化”:


谢谢,这正是我要找的!谢谢,这正是我要找的!在我看来,这将用
>
替换所有双引号,而不在它们之间交替。它旨在在键入时运行(onKeyUp),因此“替换”只替换最后输入的引号。您的函数实际上更通用,因为它始终适用于整个文本或键入时。我现在使用的是您的版本:)在我看来,这将用
>
«
替换所有双引号,而不在它们之间交替。它旨在在输入(onKeyUp),因此“替换”仅替换上次输入的引号。实际上,您的函数更通用,因为它始终适用于整个文本或键入时。我现在使用的是您的版本:)
function quotify2(inputStr)
{
    var quotes = inputStr.match(/«|»/g);
    return inputStr.replace(/"/g, (quotes && quotes.length % 2 != 0 ? '»' : '«'));
}