正则表达式可以将诸如“ cause”和“ til”之类的单词中的直引号转换为大括号

时间:2018-10-09 04:20:54

标签: javascript regex

这些替换功能:

text = text.replace(/\b'|(\.|\,|\?|\!|\*|---|\.\.\.\s)'/g, '$1’')
text = text.replace(/'\b/g, '‘')

可以转单引号:

  

“因为”直到“非常”“破裂”。

插入大括号单引号:

  

“因为”直到“非常”“破碎”。

但是我认为您已经检测到问题cause,而til应该使用右弯引号,而不是左弯引号。

这种情况下如何修改我的正则表达式?

2 个答案:

答案 0 :(得分:2)

第一个文本。替换:

text = text.replace(/\b(')|\.(')|(')(?=\w+\s)/g, '$1’')

这里的关键是先行选项(')(?= \ w \ s),换句话说,给我一个直引号,后跟一个字符串和一个空格字符,但是忽略后面的所有内容'

答案 1 :(得分:1)

您可以尝试使用此正则表达式吗,也许会对您有所帮助。

  

“”'因为它'非常非常'破了'。”。replace(/(\ s | ^)(\')(\ b)/ g,'$ 1'$ 3')。replace(/([ b] *)(\')/ g,'$ 1'')

输出-

  

“因为它”非常非常“破损”。

对于左引号,请尝试使用此正则表达式-

  

.replace(/(\ s)(\')(\ b)/ g,'$ 1'$ 3')。replace(/([\ b] *)(\')/ g,'$ 1'' )