So I found this question,它从iOS中提供了一些关于智能标点符号问题的很好的见解,但是我想进行大量的替换,即在一个完整的字符串上,而不是在用户输入输入的时候。
我环顾四周,似乎在ES6中通过使用\u<<code point>>支持unicode字符。这与regex匹配吗?
我有一根绳子:
"This is a message from iOS with it’s so-called “smart” punctuation.我一直在尝试用这个来代替测试:
x.replace(/\u8220/g, 'XXXX');我可以验证代码点是否在字符串中(通过dev tools JS控制台):
x.charCodeAt(47);8220
但是要替换的调用的输出是相同的字符串,不变。我也尝试过用[]包装unicode部分,但没有成功。我是哑巴,还是没有这样的支持呢?
发布于 2018-03-14 03:13:01
8220是左双引号的十进制值。要使用\uXXXX,您需要指定代码点的十六进制值,在本例中是\u201C。
下面的表达式将将字符串中的所有“curly”引号替换为“直”引号:
s.replace(/[\u2018\u2019\u201C\u201D]/g, (c) => '\'\'""'.substr('\u2018\u2019\u201C\u201D'.indexOf(c), 1));https://stackoverflow.com/questions/49269102
复制相似问题