处理空格和特殊字符

最近在H5 做移动端的时候,遇到了一个问题,就是一个文本框里面,用户
输入了自己的工作内容、会议记录等等。客户那边反馈,提交失败!经验问题,这是由于用户使用了“空格”,是的,有些奇怪,空格不是很常见的吗?
问题是我登录后台查看报文时发现一个很奇怪的现象:\u00a0 按理来说,只要编码转换一下就可以解决的。这个不行,最后使用 正则匹配 替换掉就好了。

解决关于 \u00a0 特殊空格的值。

replace(/\u00a0|\s+/ig, '');

/*
  * 转换特殊字符*/
  /*编码*/
  encode:function(str) {
    var patt=/[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则
    str = str.replace(patt, function(char){
      var H, L, code;
      if (char.length===2) {
        H = char.charCodeAt(0); // 取出高位
        L = char.charCodeAt(1); // 取出低位
        code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 转换算法
        return "&#" + code + ";";
      } else {
        return char;
      }
    });
    var entityMap = {
      "&": "&",
      "<": "&lt;",
      ">": "&gt;",
      '"': '&#92;&#34;',
      // "'": '&#39;',
      "/": '&#x2F;',
      "$":'&#36;',
      // "\\":"&#92;&#92;"
    };
    // encodeURIComponent该方法是为了兼容后端不兼容\的问题
    // return encodeURIComponent(String(str).replace(/[&<>"\/$]/g, function (s) {
    //   return entityMap[s];
    // }));
      var delStr =  String(str).replace(/[&<>"\/$]/g, function (s) {
          return entityMap[s];
      });
      //  (/\\u00a0|\s+/ig, '') 就是这个解决了 u00a0 的空格bug
      return delStr.replace(/\n/g,'\\n').replace(/\\u00a0|\s+/ig, '');
  },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容