微信小程序 input 不能输入特殊字符的方法
微信小程序开发中经常遇到有表单提交的需求,一些特殊的字段要过滤掉特殊字符。比如姓名、籍贯、地址等,都要实现不能输入特殊字符的功能,可以创建一个统一的方法来处理输入事件,并在这个方法中检查输入的字符。
下面是一个简单的示例:
<view class='flex f30 ali-center'> <input type="text" name="realname" value='{{realname}}' placeholder="请填真实姓名" bindchange="onName" data-field="realname" /> </view> <view class='flex f30 ali-center'> <input type="text" name="hometown" value='{{hometown}}' placeholder="请填写籍贯" bindchange="onName" data-field="hometown" /> </view> <view class='flex f30 ali-center'> <input type="text" name="address" value='{{address}}' placeholder="请填写地址" bindchange="onName" data-field="address" /> </view>
js:
// 输入框发生改变事件 onField(e) { let value = e.detail.value; let field = e.currentTarget.dataset.field // console.log('Input field:', field, 'Value:', value); this.handleSpecialChars(value, field) }, // 过滤特殊字符 handleSpecialChars(value, fieldName) {
let reg = /^[\u4e00-\u9fa5a-zA-Z0-9\s,.?!;:\'"]+$/; // 允许中文字符、英文字母、数字以及基本标点符号 if (!reg.test(value)) { wx.showToast({ title: '不能输入特殊字符', icon: 'none' }); this.setData({ [fieldName]: '' }); } else { this.setData({ [fieldName]: value }); return value; } },
如果姓名更严格点可以限制只允许输入中文:
let reg = /^[\u4e00-\u9fa5]+$/; // 正则表达式,只匹配中文
请注意,这个示例在输入非符合正则表达式时会清空输入框,这可能会影响到部分用户的体验感。
分类:
微信/小程序
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签