Javascript 如何防止此正则表达式代码删除句点?

Javascript 如何防止此正则表达式代码删除句点?,javascript,regex,Javascript,Regex,我正在编写一个代码,将哑引号转换为智能引号: text.replace(/\b"|\."/g, '”') 我添加了句号或句号,因为有时句子以句号而不是单词结尾 输入: "This is a text." 输出: “This is a text” 期望输出: “This is a text.” 如您所见,该代码删除了圆点 如何预防 规则:我想替换单词末尾或句点后的双引号,将它们转换为正确的双引号 您应该在替换中包括捕获组1,您可以通过以下方式完成此操作: replace

我正在编写一个代码,将哑引号转换为智能引号:

text.replace(/\b"|\."/g, '”')
我添加了句号或句号,因为有时句子以句号而不是单词结尾

输入:

"This is a text."
输出:

“This is a text”
期望输出:

“This is a text.”
如您所见,该代码删除了圆点

如何预防


规则:我想替换单词末尾或句点后的双引号,将它们转换为正确的双引号

您应该在替换中包括捕获组1,您可以通过以下方式完成此操作:

replace(/\b"$|(\.)"$/g, "$1”");
1美元将包含此项服务

添加$you将避免错过这些案例:

"This is a "text"."
为新规则编辑:

如果您还想替换报价的内部报价,请执行此操作>

常量正则表达式=/[\w\s.]*?=.*$\b$\.?$/g; const str=`这是一个关于生活的子引号。`; 常量subst=`1$2$3`; //被替换的值将包含在结果变量中 const result=str.replaceregex,subst; console.log'Substitution result:',result 请试试这个:

let text='这是一个文本。' console.log text.replace/\b | \./g“$1\u201d”
替换方法将匹配的文本替换为替换文本。如果你不想替换它,就不要匹配它。我测试了你的文本。替换/\b | \./g,“””它没有替换和删除这是一个文本中的任何内容。您可能想了解正则表达式的功能。这里是一个好地方->这里有一些更多的资源:-JS-.NetTry.replace/\B | \./g、$0、$1、$2=>1?“““:””’。但是,我不太确定您的模式要遵循哪些规则,请将它们添加到问题中。请尝试使用let text=“这是一个文本”,您将看到。在不应该的地方加起来。维克托尔·斯特里比·沃夫:我把这个点放在一个小组里&我把它作为一个反向参考汉克斯·维克托尔,我犯了一个错误,我修正了它。谢谢。不,现在你又犯了一个错误。我在演示中只使用了$0,因为regex101不支持$&。问题是您的$&将被重新插入。这就是问题所在。是的,你说得对,我将最终修复它替换/\b$\124\.$/g,$1”;同样要避免的是文本。这仍然不是OP需要的,但它不再那么糟糕了。