iOS 输入中文 产生特殊字符的解决办法

iOS 手机浏览器在输入中文的时候,输入框里面除了拼音之外,字母之间还会出现一些特殊字符,如果监听input事件并且将内容发到后端去请求的话,就有可能产生影响。

例如:用户想要输入“人人”,输入框里面显示的是 “r e n r e n” 中间的空白字符,通过encodeURI方法之后,变成了了“%E2%80%86”,不同于普通空白符的“%20”。

解决办法:可以监听输入框的compositionstart方法设置一个标记位,监听compositionend取消标记位,标记位存在的时候表明用户正在输入但是没有选中候选项,这个时候就不发请求到后端。又或者可以把内容里面的特殊字符replace掉。

参考:https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart

0%