正则表达式使用

本文介绍了正则表达式的菜鸟教程,包括常用的匹配符如/i、/g、/m等,以及在JavaScript中的正则表达式使用。还讨论了正则表达式如何与事件结合,如onblur、onclick等,并提供了replace()方法在字符串替换中的应用示例。此外,文章给出了多个正则表达式实例,用于验证输入,如限制输入为英文、数字、特定符号等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

撰写时间:2019年07月16日
正则表达式菜鸟教程:
https://www.runoob.com/regexp/regexp-syntax.html
表达式全集:
http://tool.oschina.net/uploads/apidocs/jquery/regexp.html

常用到的事件:

  • onblur:失去焦点触发、
  • onclick :单击时、
  • onkeyup :键抬起时 、
  • onkeydown: 键按下时

常用的匹配符:

  • /i (忽略大小写)、
  • /g (全文查找出现的所有匹配字符)、
  • /m (多行查找)
  • /gi(全文查找、忽略大小写)、
  • /ig(全文查找、忽略大小写)、
  • ^匹配输入的开始
  • &匹配输入的结束、
  • [^]放入中括号就是非或者排除的意思

/ig :
JS中的正则表达式//表示之间的就是正则表达式就像VB里的""一样,只是告诉电脑//之间的是正则表达式后面的ig,i是表示区分大小写,g是全局模式如果不区分东西写,不开启全局,就不用写ig了/[^0-9*#-]/ig 区分大小写,全局模式/[^0-9*#-]/i 区分大小写,非全局模式/[^0-9*#-]/g 不区分大小写,全局模式/[^0-9*#-]/ 不区分大小写,非全局模式

正则表达式搭配使用:

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
http://www.w3school.com.cn/jsref/jsref_replace.asp
在这里插入图片描述
不能为空

<input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')">

直接在输入框验证提示 提示可以使用插件的提示

<input onblur="if(this.value.replace(/^ +| +$/g,'')=='')layer.msg('不能为空!', { icon: 5, skin: 'layui-layer-molv'})">

只能输入英文和数字

提示的:<input onblur="if(/[^0-9a-zA-Z]/g.test(value))alert('只能输入英文数字')">

不能输入的:<input onkeyup="value=value.replace(/[^0-9a-zA-Z]/g,'')"/>

<input onkeyup="value=value.replace(/[^\da-zA-Z]/g,'')"/>

<input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')">

判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母

/^([a-zA-z_]{1})([\w]*)$/g.test(str)

只能输入数字

<input name="text" type="text" id="NewPage" onKeyUp="value=value.replace(/\D/g,'')" 		  
onafterpaste="value=value.replace(/\D/g,'')" >
onkeyup="value=value.replace(/[^0-9]/g,'')"
onkeyup="value=value.replace(/\D/g,'')"

只能输入中文

<input type="text" onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">

不能输入中文

<input type="text" onkeyup="value=value.replace(/[\u4E00-\u9FA5]/g,'')">

只能输入英文

<input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')">
<input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')">

只能输入中文、英文、数字、@符号和.符号

<input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\@\.]/g,'')">

只允许输入英文,且不能粘贴也无法弹出粘贴菜单

<input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')" onkeydown="fncKeyStop(event)" onpaste="return false" oncontextmenu = "return false"/>

只能输入数字和点号(注意:在[^\d.]里的d不能写成大写D,否则就变成除了数字以外的所有字符)

<input name="price" type="text" size="8" maxlength="8" onkeyup="value=value.replace(/[^\d\.]/g,'')" >

<input>里输入onkeyup="value=value.replace(/[^\X]/g,'')" 然后在(/[\X]/g,'')里的X换成你想验证的正则表达式

中文:u4E00-u9FA5
数字:d、0-9
英文:a-z、A-Z

其它符号@,点或其它符号.也可以多个,用\隔开就行了.
例如:
中、英文和数字加@符号加点符号:\a-\z\A-\Z0-9\u4E00-\u9FA5\@\.
若想在文本框里不能右键弹出菜单和不能粘贴进复制的信息的话就要在里输入

onKeyDown="fncKeyStop(event)" onpaste="return false" oncontextmenu="return false;

验证输入的电话号码,只能输入纯数字,或 “-” 或 “、” 或者空格

onkeyup="this.value=this.value.replace(/[^-\d、/\s]/g, '')"

验证输入的电话号码格式xxx xxxx xxxx 或xxx-xxxx-xxxx

空格类型:/^(13[0-9]|14[56789]|15[0-3,5-9]|166|17[0135678]|18[0-9]|19[89])( +| +)\d{4}( +| +)\d{4}$/

“-”符号类型:/^(13[0-9]|14[56789]|15[0-3,5-9]|166|17[0135678]|18[0-9]|19[89])\-\d{4}\-\d{4}$/

验证只能输入数字跟空格 或数字跟“-”

空格:/[^0-9\s]/g 或 /[^\d\s]/g

-:/[^0-9\-]/g 或 /[^\d\-]/g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值