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