我正在尝试用印刷引号(« 和 »)替换文本中的常规引号符号( " )。
有没有办法用 « 替换奇数引号匹配,偶数匹配 » ?
所以:你好“世界”!变成:你好«世界»!
此外,如果文本没有偶数个引号,它应该没有任何问题,因为这是为了“即时”执行
谢谢你的帮助!
我正在尝试用印刷引号(« 和 »)替换文本中的常规引号符号( " )。
有没有办法用 « 替换奇数引号匹配,偶数匹配 » ?
所以:你好“世界”!变成:你好«世界»!
此外,如果文本没有偶数个引号,它应该没有任何问题,因为这是为了“即时”执行
谢谢你的帮助!
/**
* @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;
});
}
我想出了另一种方法来做到这一点,但我不确定哪个更“优化”:
function quotify2(inputStr)
{
var quotes = inputStr.match(/«|»/g);
return inputStr.replace(/"/g, (quotes && quotes.length % 2 != 0 ? '»' : '«'));
}