首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用iOS Regex替换iOS 11智能标点符号

用iOS Regex替换iOS 11智能标点符号
EN

Stack Overflow用户
提问于 2018-03-14 03:01:44
回答 1查看 2.2K关注 0票数 1

So I found this question,它从iOS中提供了一些关于智能标点符号问题的很好的见解,但是我想进行大量的替换,即在一个完整的字符串上,而不是在用户输入输入的时候。

我环顾四周,似乎在ES6中通过使用\u<<code point>>支持unicode字符。这与regex匹配吗?

我有一根绳子:

代码语言:javascript
复制
"This is a message from iOS with it’s so-called “smart” punctuation.

我一直在尝试用这个来代替测试:

代码语言:javascript
复制
x.replace(/\u8220/g, 'XXXX');

我可以验证代码点是否在字符串中(通过dev tools JS控制台):

x.charCodeAt(47);8220

但是要替换的调用的输出是相同的字符串,不变。我也尝试过用[]包装unicode部分,但没有成功。我是哑巴,还是没有这样的支持呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-14 03:13:01

8220是左双引号的十进制值。要使用\uXXXX,您需要指定代码点的十六进制值,在本例中是\u201C

下面的表达式将将字符串中的所有“curly”引号替换为“直”引号:

代码语言:javascript
复制
s.replace(/[\u2018\u2019\u201C\u201D]/g, (c) => '\'\'""'.substr('\u2018\u2019\u201C\u201D'.indexOf(c), 1));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49269102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档