正则表达式

来源:互联网 发布:360人工智能研究院招聘 编辑:程序博客网 时间:2024/06/13 12:27
1正则表达式(规则表达式)
a 作用 匹配字符串
b . 除了\n以外的任意一个字符
c []表示范围[0-9]0-9之间任意的一个数字,包括0和6;[a-z];[A-Z];数组和字母中的一个[0-9a-zA-Z]
d {一个数字},表示{}前面的字符出现的次数;[0-9]{6},表示0-9之前的数字至少出现6次;
e {一个数字,另一个数字},表示{}前面的字符出现 一个数字 次或 另一个数字 次 [0-9]{1,5}表示0-9之间的数字出现1-5次 '1222121',宽松模式下可以匹配
f {1,}表示前面的字符出现了1次到无数次
g *前面的表达式出现了0次到多次,与{0,}相同
h +前面的表达式出现了1次到多次与{1,}相同
i ?前面的表达式出现了0次到1次,与{0,1}相同
j |表示或者
l ()提升优先级别与分组
m \d数字
n \D非数字
o \s空白符
p \S非空白符
q \w非特殊符号
r \W特殊符号
s ^以什么开始^[0-9]以数字开头,[^0-9]非数字,此时^表示取反的意思 $以什么结束[0-9][a-z]$以字母结尾
t ^$共同使用表示严格模式 ^[0-9]{4}$ 0-9中的数字出现4次 '1231'可以匹配 '1221211'不可以
u 要匹配. 使用[.]此时.失去了原来的意思,[*]表示只匹配*
v _不属于特殊符号
w \b表示单词的边界

正则表达式练习
a 15位身份证号码 [1-9]{1}[0-9]{14};
b 18为身份证号码[1-9]{1}[0-9]{16}[0-9xX]
c 身份证正则表达式([1-9]{1}[0-9]{14}| )([1-9]{1}[0-9]{16}[0-9xX] ) 或者 [1-9]{1}[0-9]{14}([0-9]{2}[0-9xX])? // ?为出现0次或1次,出现0次时是15位,出现1次是是18位
d 座机号码 010-12345678 0451-12345678 [0-9]([0-9]{2-3})[-][0-9]{7,8} 或者 \d{3,4}[-]\d{8}
e 邮政编码 [0-9]{6} 或者\d{6}
f 手机号码 ([1][358][0-9]{9} )|([1][4][47][0-9]{8})|([1][7][012567][0-9]{8});
2 创建正则表达式
1. var reg=new RegExp();
2. var reg=//;
3 验证字符串能否通过正则表达式test()方法
var regexp=/^\d{5}$/;
var reg=/\d{5}/;
var a='123456'
console.log(reg.test(a));//true
console.log(regexp.test(a));//false

4 汉字的正则[\u4e00-\u9fa5];
5 邮箱的正则var reg=/^[0-9a-zA-Z_.-]+[@][0-9a-zA-Z]+([.][a-zA-Z]+){1,2}$/;
6 g放在正则表达式的后面代表全局的

var str='小明是谁,小明是小明';
str=str.replace(/小明/,'小红');
console.log(str);//小红是谁,小明是小明
var strg=str.replace(/小明/g,'小红');
console.log(strg)//小红是谁,小红是小红


7 去掉字符串的空格
a 使用字符串的trim()方法;
b 正则表达式

var str=' 王雪 ';
var str1=str.trim();
console.log(str1);//王雪
var str2=str.replace(/^\s+|\s+$/,'');//
console.log(str2);//王雪


var str=' 王 雪 ';
var str1=str.trim();
console.log(str1);//王 雪
var str2=str.replace(/\s+|\s+/g,'');//
console.log(str2);//王雪

c trim()方法只能清除字符串两端的空格,正则表达式清除两端和中间的所有空格

8 i 放在正则表达式后面表示不区分大小写

var str='Abchabcldsabcabc';
var str1=str.replace(/abc/g,'X');
console.log(str1);//AbchXldsXX
var str2=str.replace(/abc/ig,'X');
console.log(str2);//XhXldsXX

9 字符串的match方法

var str='adhjfaancdbvazdvaoadaa';
var arr1=str.match(/a/g);
console.log(arr1);//["a", "a", "a", "a", "a", "a", "a", "a"]

第一个参数为正则表达式,返回值是符合正则表达式的元素组成的数组
10 正则表达式的exec方法

var str='你好我好大家好';
var reg=/好/g;
console.log(reg.exec(str));//["好", index: 1, input: "你好我好大家好"]
console.log(reg.exec(str));//["好", index: 3, input: "你好我好大家好"]
console.log(reg.exec(str));//["好", index: 6, input: "你好我好大家好"]
console.log(reg.exec(str));//null
var arr=[];
while(arr=reg.exec(str)){
console.log(arr.index);//分别输出1,3,6
};
console.log(arr);//null
原创粉丝点击