【发布时间】:2019-10-10 10:12:47
【问题描述】:
下期遇到问题: 我需要用角度引号替换引号,但如果句子再次得到引号 - 不应该被替换。
为了获得公开报价,我接下来使用:
const regexStartQuote = /"(?=\S)/gm;
const replaceStartQuote = '«'
用我使用的结尾替换引号:
// const regexEndQuote = /(?<=\S)"/gm; // not supported in Mozilla
const regexEndQuote = /"(?=\s)/gm;
const replaceEndQuote = '»'
这很有效。我是说: “一些文字” -> «一些文字»
顺便说一句,我使用的是 Draftjs,并且这些更改是即时应用的。
我需要扩展现有的正则表达式,所以如果句子应该是这样的:
«一些文本“引号中的文本”更多»
当然还有可能的变体,例如:
«一些文本“引号中的文本”,还有更多»
«一些文字:“引号中的文字”,还有更多»
«一些文字:“引号中的文字”,- 更多»
更新
接下来是程序流程: 键入的每个符号都与字符串合并。我的意思是,首先当例如文本块为空
字符串只是``(空),
然后用户输入'w' -> 字符串变成w,
然后是'o' -> 字符串wo,
那么'w' -> 字符串是wow,
那么 ' ' (空格) -> 字符串是wow,
那么" -> 字符串是wow «
等等
据我了解,正则表达式应该类似于:
`如果用户键入“并且在它之前没有»,但我们有«我们不应该更改”。
【问题讨论】:
-
当用户打字时,这似乎太复杂了(不可能?)。当用户结束输入时,您最好检查/替换整个字符串。
标签: javascript regex