正则表达式即有规律的表达式,在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全局,|或。