JS高级-正则表达式

正则表达式即有规律的表达式,在js中是对象。

1-作用

匹配、替换、提取。

2-特点

正则表达式灵活,逻辑性强,功能也强大,可以很简单的控制复杂的字符串,但是对于刚接触的人来说,比较晦涩难懂。

虽然难懂,但是,实际开发中都是直接复制写号的正则表达式,但是要求会使用正则表达式和根据实际情况修改正则表达式。

3-在js中的使用

3.1_了解正则表达式

一个表达式可以由简单字符或和特殊字符的组成。其中,特殊字符在表达式中是具有特殊意义的专用字符。可以特殊字符的意义参考MDN,也可以在Jq api手册里面查看。

3.2_创建正则表达式

第一种方法:

new RegExp(/表达式/);

第二种方法:

var 名=/表达式/;

看方法就知道用第二种,简单!

3.3_测试正则表达式test();

test()方法可以测试表达式是否符合正则表达式的要求。

3.4_理解下面正则表达式

^和$:/^abc/ 、/abc$/ 、/^abc$/

[]和-:/[abc]/、/ [a-zA-Z-_]/、/^[a-z]$/ 中括号里面的^表示取反和外面的^意思不一样。/^[^a-z]/

量词符号:

(1)*即可以出现>=0次、+即出现>=1次、?即出现1或者0次

如果要求内容重复精确的次数用下面的特殊符号

(2){3}即只能出现3次、{3,}即大于等于3、{3,16}即大于等于3并且小于等于16。

在实际开发中,总是让某个模式重复多少次,比如,/ ^[a-zA-Z0-9-_]$/这个模式代表用户只能输入英文字母、数字、下划线和短横线。但是前尾^$限定了只能输入一个即a为ture,ab为false。那么通过量词让这个模式进行重复,如/^[a-zA-Z0-9_-]{6,9}$/即只能输入6-9位限定输入范围的表达式。

案例-验证表单用户名

如果用户名合法,则span显示绿色,不合法改为红色。

var a=/^[a-zA-Z0-9-_]{6,9}$/

var uname=document.querySelector('.uname');
var span=document.querySelector('span');
uname.onblur=function(){
    if(a.test(this.value)){
    span.style.backgroundcolor='#green'}
else {span.style.backgroundcolor='#red'}
};

 也可以下面这么写:

如果用户名合法,则span显示绿色,不合法改为红色。

var a=/^[a-zA-Z0-9-_]{6,9}$/

var uname=document.querySelector('.uname');
var span=document.querySelector('span');
uname.onblur=function(){
    if(a.test(this.value)){
    span.className='right';span.innerHTML='用户名输入正确'}
else {span.className='wrong';span.innerHTML='用户名输入错误'};
};

3.5-替换replace

被替换的参数可以是字符串也可以是正则表达式。

<textarea name:'' id='message'></textarea> <button>提交</button>
<div></div>

var textarea =document.querySelector('#message');
var button =document.querySelector('button');
var div =document.querySelector('div');

button.onclick(){
    textarea.value.replace(/激情|黄/g,'**');
};

g全局,|或。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值