gpt4 book ai didi

javascript - 带双引号/单引号的正则表达式

转载 作者:行者123 更新时间:2023-11-29 18:27:27 25 4
gpt4 key购买 nike

我目前正在使用正则表达式(在 Javascript 中)将双引号替换为智能引号:

// ie: "quotation" to “quotation”

这是我用来替换双引号的表达式:

str = str.replace(/"([A-Za-z ]*)"/ig, "“$1”")

如果引号内的短语不包含额外的标点符号,以上内容将完美运行,但是,我还需要替换所有撇号:

// ie: replace "It's raining again" with “It’s raining again!”

如果不封装,用于替换单引号/撇号的表达式可以正常工作:

str.replace(/\'\b/g, "’"); // returns it's as it’s correctly

// Using both:
str.replace(/"([A-Za-z ]*)"/ig, "“$1”").replace(/\'\b/g, "’");

// "It's raining again!" returns as "It’s raining again!"
// Ignores double quotes

我知道这是因为替换双引号的表达式只与字母匹配,但我对正则表达式的有限经验让我对如何为可能也包含单引号的引号创建匹配感到困惑!

任何帮助将不胜感激!提前致谢。

最佳答案

您可以在引号中包含除引号之外的所有内容:

str = str.replace(/"([^"]*)"/ig, "“$1”")

另一种选择:使用非贪婪搜索:

str = str.replace(/"(.*?)"/ig, "“$1”")

此外,我不确定您是否只需要更改单词末尾的单引号。可能是改变所有这些更好?

replace(/\'/g, "’");

关于javascript - 带双引号/单引号的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11616550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com