尝试使用Regex使用iOS快捷方式匹配iOS电话号码

尝试使用Regex使用iOS快捷方式匹配iOS电话号码,ios,regex,unicode,phone-number,ios-shortcut,Ios,Regex,Unicode,Phone Number,Ios Shortcut,我正在创建一个iOS快捷方式,首先检查剪贴板当前是否包含复制的电话号码 到目前为止,我的正则表达式如下: ^[\d\()-‑+  ]+$ 虽然在使用电话键盘键入常规电话号码时,例如,+972 12-345-6789,它仍然可以正常工作;直接从默认的手机应用程序复制时,似乎找不到匹配项 我应该提到,在挖掘了一段时间后,似乎从电话应用程序复制的电话号码与一些额外的特殊字符相关联,这些字符用于从左到右嵌入。使用Unicode解码器为我提供了以下字符串: ‪+972&#x

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

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

^[\d\()-‑+  ]+$
虽然在使用电话键盘键入常规电话号码时,例如,
+972 12-345-6789
,它仍然可以正常工作;直接从默认的
手机
应用程序复制时,似乎找不到匹配项

我应该提到,在挖掘了一段时间后,似乎从电话应用程序复制的电话号码与一些额外的特殊字符相关联,这些字符用于从左到右嵌入
。使用Unicode解码器为我提供了以下字符串:

‪+972 12‑345‑6789‬

我甚至不确定这是否是原因,但可能与此有关。如果是的话-是否有任何方法可以使用
iOS快捷方式
将剪贴板文本解码为Unicode格式并删除这些额外字符?如果两者之间没有联系,还有什么问题吗?

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

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

  • \p{Zs}
    匹配没有制表符和换行符的所有空格(如果需要支持制表符,请将
    \t
    添加到括号中)
  • \p{Pd}
    将匹配任何破折号
  • \p{Cf}
    匹配双向标记和更多其他控制格式字符
替代解决方案
可以将复制的剪贴板文本粘贴到一个
text
操作中,该操作将删除任何附加格式。

如果将对所有这些字符的支持添加到模式中,会怎么样<代码>^[\d()+\p{Zs}\p{Pd}\p{Cf}]+$
\p{Zs}
-所有没有制表符和换行符的空格,
\p{Pd}
将匹配任何破折号,
\p{Cf}
匹配双向标记和更多其他控制格式字符。这种方法对您有效吗?非常感谢@WiktorStribiżew!成功了!请务必回答这个问题,这样我才能将它标记为解决方案。