javascript - 在 JavaScript 中匹配开始和结束引号(简单引号)

标签 javascript regex

我想将字符串的所有单引号(“...”)更改为智能引号(“...”):

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/

相关文章:

javascript - 根据所选菜单项更改菜单侧边栏 - Semantic UI & JQuery

PHP FTP 和 ajax 或类似的

javascript - 内容安全政策 Chrome 应用程序 (img-src)

javascript - 生成jsdoc文档

Python 正则表达式提取第一个大写单词或第一个和第二个单词(如果两者都大写)

python - python 正则表达式中的负前瞻问题

javascript - 如何设置此 javascript 正则表达式匹配功能?

PHP 和 JavaScript 数组附件

mysql - 如何向正则表达式模式测试添加标志?

php - preg_match 在第二个斜杠后向后看