我需要向用户发送短信,然后发送消息我要从短信中删除不支持的字符。我添加了我的API文档行作为参考。
一般来说,只有标准ASCII字符集的子集才支持通过SMS传送给用户的内容。支持的字符列表是A-Z,a-z,0-9和以下内容:
@$_/.,"():;-=+*&%#!?<>'
加上空格和换行符"\n"
。不支持大多数特殊字符,并且会导致无线运营商拒绝邮件。特别是,不支持重音字符和以下内容:
标签
[
]
~
{
}
^
|
€
\
< / p>在创作内容以通过短信发送时,使用简单的ASCII字符作为撇号,省略号以及单引号和双引号也很重要:
使用
'
代替<
`>
和<’>
使用
"
代替<“>
和<”>
使用
...
代替…
(注意:这是三个独立的句号,而不是单个省略号字符)
所以我正在寻找正则表达式来满足这个要求。
答案 0 :(得分:3)
您可以替换所有与有效字符不匹配的字符:
[^A-Za-z0-9@$_\/.,"():;\-=+&%#!?<>' \n]
[]
表示:“任意”,^
表示:“不”。所以整个表达都说:匹配任何东西,但......
所以你要写:
replace all [^A-Za-z0-9@$_\/.,"():;\-=+&%#!?<>' \n] in the SMS by nothing
如需了解更多信息(以及您的其他问题;-)),请查看此Howto。