1

我正在创建一个 iOS 快捷方式,首先检查剪贴板当前是否包含复制的电话号码。

到目前为止,我的正则表达式如下:

^[\d\()-‑+  ]+$

尽管使用电话键盘输入常规电话号码时,例如+972 12-345-6789,它工作得很好;似乎直接从默认Phone应用程序复制时,它没有找到它作为匹配项。

我应该提一下,经过一段时间的挖掘,似乎从电话应用程序复制的电话号码与一些额外的特殊字符相关联Left-To-Right Embedding。使用 Unicode 解码器给了我以下字符串:

‪+972 12‑345‑6789‬

我什至不确定这是否是原因,但它可能与它有某种联系。如果是这样 - 有什么方法可以iOS Shortcuts用来将剪贴板文本解码为 Unicode 格式并删除那些额外的字符?如果两者之间没有联系,还有什么问题?

4

2 回答 2

1

您可以将所有这些字符的支持添加到模式中:

^[\d()+\p{Zs}\p{Pd}\p{Cf}]+$`

笔记:

  • \p{Zs}匹配所有没有制表符和换行符的空格(\t如果需要支持 TAB,请添加到括号中)
  • \p{Pd}将匹配任何破折号
  • \p{Cf}匹配双向标记和更多其他控制格式字符。
于 2021-04-11T21:55:15.753 回答
0

替代解决方案

可以将复制的剪贴板文本粘贴到Text删除任何其他格式的操作中。iOS 14 快捷方式 - 使用“文本”操作删除格式

于 2021-04-12T07:54:17.147 回答