Javascript正则表达式

本文介绍JavaScript中的正则表达式基本概念与用法,并通过实例演示如何利用正则表达式进行数据验证,包括用户名、QQ号、手机号、邮箱及身份证号等。此外,还展示了如何使用正则表达式从HTML中抽取链接地址和标题。

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

Javascript正则表达式:
一、
1、正则表达式就是一种规则,就像我们通过dtd验证xml是不是符合某种规则,正则就是用来验证我们的字符串是不是符合某种规则
2、正则可以理解成筛子,将网页上我们需要的数据给筛选出来
3、正则表达式是一门语言,不依赖于任何其他的语言,只是其他语言如何去支持正则
二、
Javascript操作正则是通过RegExp这个对象来实现的
获得这个对象:
New RegExp(正则表达式,模式修正符)
快捷语法: /正则表达式/模式修正符
常用的方法:
Test() 检测字符串是否含有符合我们规则的字符,返回布尔类型的值
Exec() 检测字符串是否含有符合我们规则的字符,如果有返回匹配到的值,否则返回null
三、
表示字符集 【】
【】中  - 表示的是 一个范围
[a-z]   表示小写字母
[A-Z]  大写字母
[0-9]  表示所有的数字
[za]  z  或 a 二选1

var reg=/[^a-z]/;  []中^代表非
var reg=/^[a-z]$/;  []中^代表某个字符的开始  $代表以某个字符结束

| 代表或
 var reg  = /a|b|c/;

.  表示任意字符,但是不匹配 换行符(\n)

\  转义字符,将后面字符原样输出

常用的转义字符来表示 某个字符
\w 所有的字母数字下划线 等于 [a-zA-Z0-9_]
 var reg = /\w/;  //匹配所有所有的字母数字下划线 [a-zA-Z0-9_]
 var str = 'www.hbsi.com';
 alert(reg.exec(str));
\W  非 \w
\d   所有的数字

\D  所有的字符除了 数字
\s   空格
\S  所有字符,但是除了空格
\b  字符边界(boundary)
\D  所有的字符,但是除了字符边界

四、
Unicode编码表示汉字
因为javascript内置的编码就是 unicode,4e00-9fa5

五、表示字符数量
{}   表示是数量范围
{最小数量,最大数量} {1,6}最少1次最多6次
{1,}  表示1到正无穷
{,5} 表示最多5个
{6}  表示6次
*  0次或多次  任意多
 +   表示最少1次(1次或多次)
? 0 次或1次


二、验证邮箱等
<html>
 <head>
 </head>
<script type="text/javascript">
function aa()
{
var user=document.getElementById('user').value;
var reg=/^[a-zA-Z]\w{5,18}/;
if(user==reg.exec(user))
{document.getElementById('aa').innerHTML="<font color='red'>输入正确</font>"}

else{document.getElementById('aa').innerHTML="<font color='red'>字母开头,长度在6-18之间,只能包含字母、数字和下划线</font>"}
}
function qq1()
{
var qq=document.getElementById("qq").value;
var reg=/\d{9,10}/;
if(qq==reg.exec(qq))
{
document.getElementById('qq1').innerHTML="<font color='red'>输入正确</font>"
}
else{document.getElementById('qq1').innerHTML="<font color='red'>qq号只能为9位或10位</font>"}
}
function telphone()
{
var tel=document.getElementById("tel").value;
var reg=/^1(3|5|8)\d{9}$/;
arr=reg.exec(tel);
if(tel==arr[0])
{
document.getElementById('telphone').innerHTML="<font color='red'>输入正确</font>"
}
else{document.getElementById('telphone').innerHTML="<font color='red'>电话号为11位</font>"}
}

function yx()
{
var youxiang=document.getElementById("youxiang").value;
var reg=/\w+@\w+\.(com|net|cn|gov)/;
//alert(reg.exec(youxiang));
arr=reg.exec(youxiang);
if(youxiang==arr[0])
{
document.getElementById('yx').innerHTML="<font color='red'>输入正确</font>"
}
else{document.getElementById('yx').innerHTML="<font color='red'>邮箱输入错误</font>"}
}

function people()
{
var shenfen=document.getElementById("shenfen").value;
var reg=/\d{17}(X|Y)/;
arr=reg.exec(shenfen);
if(shenfen==arr[0])
{
document.getElementById('people').innerHTML="<font color='red'>输入正确</font>"
}
else{document.getElementById('people').innerHTML="<font color='red'>身份证只能为15位或18位</font>"}
}
</script>
 <body>
  <form>
  <table>
 <tr>
     <td>密码</td>
        <td><input type="text" id="user" onblur="aa()"></td>
  <td id="aa"><font color="red">*</font></td>
 </tr>
 <tr>
     <td>QQ号</td>
  <td><input type="text" id="qq" onblur="qq1()"></td>
  <td id="qq1"><font color="red">*</font></td>
 </tr>
 <tr>
  <td>手机号</td>
  <td><input type="text" id="tel" onblur="telphone()"></td>
  <td id="telphone"><font color="red">*</font></td>
 </tr>
 <tr>
  <td>邮箱</td>
  <td><input type="text" id="youxiang" onblur="yx()"></td>
  <td id="yx"><font color="red">*</font></td>
 </tr>
 <tr>
  <td>身份证号</td>
  <td><input type="text" id="shenfen" onblur="people()"></td>
  <td id="people"><font color="red">*</font></td>
 </tr>
  </table>
  </form>
 </body>
</html>

三、匹配链接字符串的链接地址和标题
var str='<a href="http://www.baidu.com">欢迎来到学校</a>';
var reg=/<a\shref="(\w{4}:\/{2}\w{3}\.\w{5}\.\w{3})">([\u4e00-\u9fa5]{6})/;
arr=reg.exec(str);
alert(arr[0]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值