You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:56:40