0

我正在尝试用印刷引号(« 和 »)替换文本中的常规引号符号( " )。

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

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

此外,如果文本没有偶数个引号,它应该没有任何问题,因为这是为了“即时”执行

谢谢你的帮助!

4

2 回答 2

3
/**
 * @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;
  });
}
于 2012-05-16T11:32:20.813 回答
0

我想出了另一种方法来做到这一点,但我不确定哪个更“优化”:

function quotify2(inputStr)
{
    var quotes = inputStr.match(/«|»/g);
    return inputStr.replace(/"/g, (quotes && quotes.length % 2 != 0 ? '»' : '«'));
}
于 2012-05-18T21:26:59.117 回答