|
这个问题涉及到3个方面
1. 话说 正则如何去除文本里的全部表情U码?
传入的文本= 凉凉\uD83D\uDD1Ehttp://baidu.com猪猪侠
正则.创建 (“[^\\u0000-\\uFFFF]”, 传入的文本, , , , )
会失败 并没有去除\uD83D\uDD1E
2. 正则如何去除文本里的全部转义符比如: \n \" \uD83D\uDD1E \ 凡是带有转义符的字符 只留下中文/英文/标点符号
我试过
传入的文本= 凉凉\uD83D\uDD1Ehttp://baidu.com猪猪侠
正则.创建 (“[\u4E00-\u9FA5A-Za-z0-9_]+”, 传入的文本, 真)
得到: 凉凉\uD83D\uDD1Ehttpbaidu.com猪猪侠
://被去除了
3. 如何仅去除单个\ 而不影响其它转义符
我在用TX机qi人发送消息时
传入的文本=\uD83D\uDD1E你好猪猪侠是一只猪! 发送成功
传入的文本=你好\n猪猪侠是一只猪! 发送成功
传入的文本=\uD83D\uDD1E你好\n猪猪侠是\一只猪! 发送成功
传入的文本=你好猪猪侠是\一只猪! 发送失败
传入的文本=\uD83D\uDD1E你好\n猪猪侠是\一只猪! 发送失败
经过我半天的研究发现:是单个\导致的失败 因为文本最终会被转义两次变成:
传入的文本=\\uD83D\\uDD1E你好\\n猪猪侠是\\一只猪! 发送失败:json格式不正确
假设:传入的文本=\uD83D\uDD1E你好\n猪猪侠是\一只猪!
POST 提交的DATA={"object_name":"MHY:Text","room_id":68775,"msg_content":"{\"content\":{\"text\":\"\\uD83D\\uDD1E你好\\n猪猪侠是\\一只猪!\"}}"}
就会报错: {"data":null,"message":"Invalid content","retcode":-1}
而如果 POST 提交的DATA={"object_name":"MHY:Text","room_id":68775,"msg_content":"{\"content\":{\"text\":\"\\uD83D\\uDD1E你好\\n猪猪侠是一只猪!\"}}"} 就不会报错
我也想过直接粗暴的
传入的文本=\uD83D\uDD1E你好\n猪猪侠是\一只猪!
子文本替换(传入的文本,“\”,“”) 但这样一来换行符\n 表情U码\uD83D\uDD1E 以及其它有转义符的特殊符号也也会被替换导致前端不执行换行和显示表情
于是我琢磨者是不是能通过正则只去掉当\ 而保留其它转义符 不影响文本里的 换行符\n 和 表情U码\uD83D\uDD1E
|
|