正则表达式删除SMS不支持的字符

时间:2013-01-16 10:06:20

标签: regex

我需要向用户发送短信,然后发送消息我要从短信中删除不支持的字符。我添加了我的API文档行作为参考。

  

一般来说,只有标准ASCII字符集的子集才支持通过SMS传送给用户的内容。支持的字符列表是A-Z,a-z,0-9和以下内容:

     

@$_/.,"():;-=+*&%#!?<>'加上空格和换行符"\n"

     

不支持大多数特殊字符,并且会导致无线运营商拒绝邮件。特别是,不支持重音字符和以下内容:

     

标签[ ] ~ { } ^ | \ < / p>      

在创作内容以通过短信发送时,使用简单的ASCII字符作为撇号,省略号以及单引号和双引号也很重要:

     

使用'代替<`><’>

     

使用"代替<“><”>

     

使用...代替(注意:这是三个独立的句号,而不是单个省略号字符)

所以我正在寻找正则表达式来满足这个要求。

1 个答案:

答案 0 :(得分:3)

您可以替换所有与有效字符不匹配的字符:

[^A-Za-z0-9@$_\/.,"():;\-=+&%#!?<>' \n]

[]表示:“任意”,^表示:“不”。所以整个表达都说:匹配任何东西,但......

所以你要写:

replace all [^A-Za-z0-9@$_\/.,"():;\-=+&%#!?<>' \n] in the SMS by nothing

如需了解更多信息(以及您的其他问题;-)),请查看此Howto