JS- 正则表达式
2017-10-27 本文已影响0人
大大的小小小心愿
一、正则表达式:对字符串进行模式匹配的强大工具。
用来检查一个串是否含有某种子串,将匹配的子串替换或者从某个子串中取出某个符合条件的子串等。
正则:规则
正则属性:设置条件(如匹配一个还是多个)
二、创建正则
1、直接量、字面量
var reg = / flower/;
2、对象的方式
var reg = new RegExp("flower","");
三、找到正则表达式的匹配的值 match()
console.log(str.match(reg2));
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
三、元字符 (6) [正常情况下只代表一个字符]
\d (digtal) 数字
\w (world) 数字字符,包括:数字、字母、下滑线
\s (spacing) 空白字符,包括:空格、换行(\n)、\t
\n 换行符
. 所有字符,不包括:换行符、结束符(JS无结符:\0)
\b 单词边界
\bbox\b:box这个单词
\bbox :以单词开头的box
box\b :以单词结尾的box
[\u4e00-\u9fa5] 匹配汉字
四、量词
// + 一个或多个
// * 零个或多个
// ? 零个或一个
// n{x} x个n
// n{x,y} x-y个n(n{2,4}:2个或3个或4个n) 注:x<y,且多的符合条件的话,先匹配。
// ^x 作为字符串开头的x
// x$ 在字符串结尾的x
关于量词!!!:
var reg1 = /5+/g;
var reg9 = /^\d/g;
// 以数字开头
var reg4 = /\w*/g;
// 把所有的去掉后,剩下一个空的字符串。也算一个空
var reg10 = /^/g;
// 整个字符开头,后面的是空字符。打印 “”
var reg11 = /^\s/g;
// 以空格开头
var reg11 = /^sg$/g;
// 以sg开头,以sg结尾 (sg才能满足条件)
var reg11 = /^s.g$/g;
// 以s开头g结尾 中间:.是元字符代表一个,所以s和g之间只能有一个字符
var reg14 = /^s.*g$/g;
// 以s开头以g结尾的 中间:所有元字符的零个或多个
var reg15 = /^s\w+n$/g;
// 以s开头以g结尾 \w+ 一个或多个单词
五、中括号[ ]
// [123] 匹配123中的任何一个
// [^123] 匹配123以外的任意字符
// [12345] 可以写成 [1-5] 1到5中的任何一个
关于 [ ]!!!
var reg1 = /[123][234]/g;
//匹配 两个字符,第一个是[123],第二个是[123]
var reg1 = /[123]{2}[234]/g;
//匹配[123][123][234]
var reg1 = /[1-356-8]*/g;
// 1-3 5 6-8
var reg1 = /[A-Za-z]*/g;
//所有大小写字母
六、匹配 ()
(3|5) 括号代表一个整体,占一位。 | 或者。3或者5
匹配有特殊含义的字符要加 \ ,如: + . ? *
关于匹配:
var reg1 = /(3|2[13])/g;
// 3 或者 2[13](21 或者 23)
var reg1 = /(3|2[13])+/g;
// 3 或者 2[13](21 或者 23) 或者 3 21 23 都有的(每个都可有多个匹配)
注:
1、g:代表匹配所有满足条件的。
var reg = /flower/g
2、字符串的 replace支持正则, /g可替换所有
3、满足正则查找条件时,会尽可能匹配多的字符
4、一般只加元量,只是一个值,加了量词后才是多个词