JavaScript——JS中的正则表达式

6.3 正则表达式

正则表达式(Regular Expression):主要用在字符串格式匹配方面

6.3.1 常用正则表达式符号

符号功能
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

6.3.2 常用限定符符号

符号功能
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

6.3.3 常用的反义代码

符号功能
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符
  • 正则表达式当中的小括号()优先级较高。
    • [1-9] 表示1到9的任意1个数字(次数是1次。)
    • [A-Za-z0-9] 表示A-Z、a-z、0-9中的任意1个字符
    • [A-Za-z0-9-] 表示A-Z、a-z、0-9、- ,以上所有字符中的任意1个字符
  • 简单的正则表达式要会写
    • QQ号的正则表达式:1[0-9]{4,}$
    • email正则:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$

6.3.4 创建表达式对象以及调用方式

创建方式:
  • 第一种创建方式:
    var regExp = /正则表达式/flags;
  • 第二种创建方式:使用内置支持类RegExp
    var regExp = new RegExp(“正则表达式”,“flags”);
关于flag后面的参数:
  • g:全局匹配
  • i:忽略大小写
  • m:多行搜索(ES规范制定之后才支持m)
    • 当前面是正则表达式的时候,m不能用
    • 只有前面是普通字符串的时候,m才可以使用
调用方式:

正则表达式对象的test()方法

true / false = 正则表达式对象.test(用户填写的字符串);
  • true : 字符串格式匹配成功
  • false: 字符串格式匹配失败

6.3.5 验证邮箱格式

1.代码示例验证邮箱是否正确
光标如果回去需要将验证正确与否剔除

<body>

<script type="text/javascript">
window.onload = function(){
	   // 给按钮绑定click
	   document.getElementById("btn").onclick = function(){
		   var email = document.getElementById("email").value;
		   var emailRegExp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
		   var ok = emailRegExp.test(email);
		   if(ok){
				//合法
				document.getElementById("emailError").innerText = "邮箱地址合法";
		   }else{
			   // 不合法
			   document.getElementById("emailError").innerText = "邮箱地址不合法";
		   }
	   }
	   // 给文本框绑定focus
	   document.getElementById("email").onfocus = function(){
		   document.getElementById("emailError").innerText = "";
	   }
   }


</script>

<input type="text" id="email" />
	<span id="emailError" style="color: red; font-size: 12px;"></span>
	<br>
<input type="button" value="验证邮箱" id="btn" />

</body>

输入邮箱验证成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jT1huGqO-1659103971774)(../../../Pictures/JS/image-20220729201203713.png)]

如果光标回去文本框 需要清除右边那个提示,则需要绑定其他

// 给文本框绑定focus
document.getElementById("email").onfocus = function(){
	document.getElementById("emailError").innerText = "";
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fgk9XkE6-1659103971775)(../../../Pictures/JS/image-20220729201213941.png)]

6.3.6扩展字符串trim函数

去除字符串的前后空白trim

<body>
	<script type="text/javascript">	
		window.onload = function(){
			document.getElementById("btn").onclick = function(){
				// 获取用户名
				var username = document.getElementById("username").value;
				// 去除前后空白
				username = username.trim();
				// 测试
				alert("--->" + username + "<----");
			}
		}
	</script>
	<input type="text" id="username" />
	<input type="button" value="获取用户名" id="btn" />
</body>
  • 低版本的IE浏览器不支持字符串的trim()函数,
  • 解决办法:对String类扩展一个全新的trim()函数,重写覆盖新的tim函数,在trim函数中写正则表达式
String.prototype.trim = function(){
	// 去除当前字符串的前后空白
	// 在当前的方法中的this代表的就是当前字符串.
	//return this.replace(/^\s+/, "").replace(/\s+$/, "");
	return this.replace(/^\s+|\s+$/g, "");
}
return this.replace(/^\s+/, "").replace(/\s+$/, "");

这行代码第一个replace是前空格字符串,后一个replace是后空格字符串,
/ 字符串/ ,^是开头,$是结尾,\s是空白字符串,+1个到多个字符串。

prototype可以扩展属性


  1. 1-9 ↩︎

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖虎不秃头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值