Google App Maker:添加文本框特殊字符替换服务器脚本及onValueEdit说明
实现文本框编辑时自动替换特殊字符(基于onValueEdit事件)
刚好可以利用onValueEdit这个客户端事件来实现你的需求,先帮你理清楚这个事件的核心特性,再给你具体的代码示例:
先划重点:onValueEdit vs onValueChange
每当用户手动编辑部件值时,
onValueEdit会在客户端触发,参数widget指向当前部件,newValue是用户刚输入的内容。
和onValueChange()的区别是:它完全忽略绑定更新、编程赋值这类非用户手动操作的场景,完美匹配你要“仅在用户填写时处理”的需求。
具体实现脚本
下面是一个通用的特殊字符替换脚本,你可以根据自己的需求调整替换规则:
function onValueEdit(widget, newValue) { // 定义要替换的特殊字符规则:这里示例是替换所有非字母、数字、中文和常用标点的字符 // 你可以根据需求修改正则表达式 const cleanedValue = newValue.replace(/[^\u4e00-\u9fa5a-zA-Z0-9,.!?,。!?\s]/g, ''); // 将处理后的值设置回部件 widget.setValue(cleanedValue); // 如果需要阻止默认的输入行为,可以返回false(可选) // return false; }
自定义替换规则的小提示
- 如果你只想替换特定的几个特殊字符(比如
@#$%),可以把正则改成:newValue.replace(/[@#$%]/g, '') - 要是需要把特殊字符替换成指定内容(比如把
*换成×),可以用:newValue.replace(/\*/g, '×') - 记得处理空值情况:如果
newValue是空字符串,直接返回即可,避免不必要的处理
这样设置后,用户每次在文本框里输入内容,脚本都会自动清理掉你定义的特殊字符,而且完全不会影响通过绑定或代码设置的值~
内容的提问来源于stack exchange,提问作者Johan W.
相关产品推荐
相关产品推荐

