首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从文本中删除零宽度空格字符‍

问如何从文本中删除零宽度空格字符‍
EN

Stack Overflow用户
提问于 2018-06-02 00:56:21
回答 2查看 5.5K关注 0票数 3

我有包含‍ Zero width joiner的文本,它在UI中不可见,但当我将其作为短信发送时,它在iPhone中显示为?问号。

我尝试过使用gsub删除它,但它没有被删除。

代码语言:javascript
复制
text.gsub("&zwj\;", "")

有没有从文本中删除这种看不见的字符的方法?

更新:

除了@matt的回答

Unicode具有以下零宽度字符:

  • U+200B零宽度空格
  • U+200C零宽度非拼接Unicode代码点
  • U+200D零宽拼接Unicode代码点
  • U+FEFF零宽度无中断空格Unicode代码点

<代码>F215

要在文本中替换它们,可以使用简单的正则表达式:

代码语言:javascript
复制
text = text.gsub(/[\u200B-\u200D\uFEFF]/, '')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-05 01:36:52

字符串&zwj;是用于零宽度拼接器的HTML字符实体。当web浏览器看到它时,它会用一个实际的零宽度拼接器替换它,但就Ruby而言,它只是一个5个字符的字符串。

您要做的是指定实际的零宽度拼接器字符。它有代码点U+200D,所以你可以像这样使用它,使用Ruby的Unicode转义:

代码语言:javascript
复制
text.gsub("\u200D", "")

这应该会删除零宽度拼接器字符,而不是像原始代码那样查找字符串&zwj;。

票数 2
EN

Stack Overflow用户

发布于 2018-06-02 03:22:05

代码语言:javascript
复制
"blah blah blah".gsub(/[^[:print:]]/, '')

应删除所有不可打印的字符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50647999

复制
相关文章

相似问题

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