找回密码
 立即注册

QQ登录

只需一步,快速开始

zhanglibin

初级会员

28

主题

91

帖子

257

积分

初级会员

积分
257

[已处理] 去掉特殊字符

zhanglibin
初级会员   /  发表于:2021-11-26 17:01  /   查看:1956  /  回复:3
单元格如何禁止录入特殊字符;譬如换行:/n、Tab:/t 等。。。
如果自己用特殊字符校验,过滤不掉;举例:
function replaceXX(str){
      if(typeof str === 'string'){
        return str.replace(/[^u4e00-u9fa5w]/g, '')
      }else{
        return str
      }
    }

replaceXX(`a&a^a*a(a)a!a@A#a$a%a"a\/a⬆a😄1\n22\n\n+1+1\n22\n\b\t\v\f\r\"/`)
结果:'aa^aaaaa@Aaaaaaa1221122'
数据设置到sheet表单上,用sheet.getDataItem(row)获取回数据在用以上方法替换无效字符结果:
"aa^aaaaa@Aaaaa\\aa1\\n22\\n\\n11\\n22\\n\\b\\t\\\\f\\r\\"

请问怎么能把特殊字符去掉?或者如何设置单元格格式;目前该单元格类型是:TipCellType.prototype = new GC.Spread.Sheets.CellTypes.Text();

3 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-26 17:35:38
沙发
您好,
可以监听 EditEnding 事件,通过 editingText 属性获取编辑输入的值,
判断如果包含 \n 等特殊字符,则设置cancel为true。
或者监听 EditChange 事件,判断editingText中包含特殊字符时,执行一些操作(如清空值、做出提示等)。
具体您可以参考API实际测试下。
回复 使用道具 举报
zhanglibin
初级会员   /  发表于:2021-11-26 17:41:53
板凳
Lynn.Dou 发表于 2021-11-26 17:35
您好,
可以监听 EditEnding 事件,通过 editingText 属性获取编辑输入的值,
判断如果包含 \n 等特殊字 ...

收到,感谢;
是我这边测试有问题;
在单元格直接输入“回车”和/n是两个意义;输入/n会转译为//n所以出现上述问题;
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-26 17:47:07
地板
找到原因了就好,那本帖就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部