我想将字符串的所有单引号(“...”)更改为智能引号(“...”):
str.replace(/"/g,'“');
但后来我意识到,为了做到这一点,我必须匹配开始和结束引号,就像这样:
str.replace(/REGEX_FOR_OPENING_QUOTES/g,'“');
str.replace(/REGEX_FOR_CLOSING)_QUOTES/g,'”');
在这种情况下我应该使用什么正则表达式?
最佳答案
这是一种非常幼稚的方法,它循环遍历每个常规引号并在智能的开盘价和收盘价之间切换,但它可能对您有用...
function addSmartQuotes(str) {
var open = false;
return str.replace(/"/g, function(match, $1) {
open = !open;
return open ? '“' : '”';
});
}
var str = 'This is my "string", blahdy "blah" blah';
console.log(addSmartQuotes(str)); // => This is my “string”, blahdy “blah” blah
还值得注意的是,除非您确定您的网页是 UTF-8 格式,否则最好对开始和结束引号使用 HTML 字符代码,而不是 UTF-8 字符。它们是 “
(“) 和 ”
(”)。
关于javascript - 在 JavaScript 中匹配开始和结束引号(简单引号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27773979/