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需要的,但它不再那么糟糕了。