小程序 - 解析input框中输入法自带的emoji表情

小程序 - 解析input框中输入法自带的emoji表情_第1张图片

input框value值为'老虎?',需要将emoji表情进行转义再发送至后台

let string = '老虎?'
let regex = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig
let title = string.replace(regex, function (res) {
  return encodeURIComponent(res)
})
console.log(title) // 老虎%F0%9F%90%B9

Tip:replace()第二个参数传递一个匿名函数,该函数可以对所有匹配成功的字符串进行操作,详情可翻阅W3C文档JavaScript replace() 方法

后台返回'老虎%F0%9F%90%B9'时,使用decodeURIComponent()进行解析

let data = '老虎%F0%9F%90%B9'
console.log(decodeURIComponent('老虎%F0%9F%90%B9')) // 老虎?

注:正则表达式摘抄于以下博客

https://www.cnblogs.com/zt-blog/p/6773854.html

你可能感兴趣的:(JS)