当前位置: 首页 > web >正文

JS 浅析正则表达式

做数据的校验,就离不开正则表达式,现在网上常用的正则表达式都很全,很多都是开箱即用,非常方便和快捷,但是偶尔也会遇到那种很特殊的正则校验,如果能清楚的明白正则的校验规则,那么任何时候,面对任何需求,我们都会很轻松,从容而又优雅的写出所匹配的正则表达式,从此告别盲目的搜索!

举个栗子:

想限制输入内容为汉字、数字、字母、中英文百分号(%和%)、中英文冒号(:)等其他特殊字符。

核心正则表达式:

/^[\u4E00-\u9FA5a-zA-Z0-9\::%%]*$/

关键点说明‌:
  • \u4E00-\u9FA5:所有汉字
  • a-zA-Z0-9:字母和数字
  • 冒号:英文:\u003A)和中文\uFF1A
  • 百分号:英文%\u0025)和中文\uFF05
注意:
  1. Unicode精准匹配

    • 中文字符和标点需显式声明Unicode编码(如\uFF08匹配中文左括号)。
    • 避免使用.\w等宽泛符号,防止误匹配。
  2. 符号范围

    • 英文标点‌:直接使用字符(如()%)。
    • 中文标点‌:需用Unicode编码(如对应\uFF05)。
  3. 空值处理

    • 正则表达式末尾用*允许空字符串(如^[...]*$)。
    • 若强制至少一个字符,改为+(如^[...]+$)。

示例代码1:输入框实时过滤

HTML

<input type="text" oninput="this.value=this.value.replace(/[^\u4E00-\u9FA5a-zA-Z0-9\::%%]/g, '')">
  • 使用oninput事件实时替换非法字符为空字符串,支持粘贴和输入。

 

JS

function validateInput(value) {return /^[\u4E00-\u9FA5a-zA-Z0-9\::%%]+$/.test(value);
}
  • 返回true表示合法输入,false表示包含非法字符。

 

完整示例:

<input type="text" id="restrictedInput" oninput="this.value=this.value.replace(/[^\u4E00-\u9FA5a-zA-Z0-9\::%%]/g, '')">
<button onclick="submitForm()">提交</button><script>
function submitForm() {const input = document.getElementById("restrictedInput").value;if (!/^[\u4E00-\u9FA5a-zA-Z0-9\::%%]+$/.test(input)) {alert("输入包含非法字符!");return false;}// 通过验证后执行提交逻辑console.log("合法输入:", input);
}
</script>

看懂了基础规则,是不是非常简单~

http://www.xdnf.cn/news/1257.html

相关文章:

  • 【pytorch学习】土堆pytorch笔记1
  • ibus输入法微软词库分享
  • 什么是管理思维?
  • 今日行情明日机会——20250422
  • QGIS实用功能:加载天地图与下载指定区域遥感影像
  • 制作一款打飞机游戏17:敌人
  • Phyton简介与入门
  • git配置
  • AI答题小程序应用场景有哪些
  • 如何获取适用于智能家电的谷歌浏览器版本【简单安装】
  • Kubernetes finalize | namespace卡Terminatingfinalizers删除失败
  • 如何在spark里搭建local模式
  • 深度解析:基于卷积神经网络的宠物识别
  • Redis 设置过期时间
  • 仓储物流管理系统开发:提升企业供应链效率的关键技术
  • SQLMesh隔离系统深度实践指南:动态模式映射与跨环境计算复用
  • TikTok X-Gnarly纯算分享
  • IO流详解
  • 监控网络状态
  • windows磁盘扩展分区
  • 110. 平衡二叉树
  • 初识网络原理
  • Linux与Anaconda环境部署与管理(运维交接)
  • 2023蓝帽杯初赛内存取证-6
  • 方案精读:华为智慧园区解决方案【附全文阅读】
  • 再见 Smartdaili,你好 Decodo!
  • 解释instanceof
  • 营收持续增长,恩威医药价值重估再现
  • 【信息安全工程师备考笔记】第二章 网络信息安全概述
  • 典籍知识问答典籍查询界面前端界面设计效果实现