JavaScript正则表达式
2020-12-13 05:41
标签:构造函数 regex pre 整数 单个字符 正则表达式 不同 col 只读 正则表达式( 示例: \o:NULL字符( \t:制表符,即Tab( \n:换行符( \v:垂直制表符( \f:换页符( \r:回车符( \xnn:由十六进制数nn指定的拉丁字符,例如,\x0A等价于\n \uxxxx:由十六进制数xxxx指定的Unicode字符,例如\u0009等价于\t \cX:控制字符^X,例如,\cJ等价于换行符\n 示例: ^:匹配字符串的开头,在多行检索中,匹配一行的开头 $:匹配字符串的结尾,在多行检索中,匹配一行的结尾 \b:匹配一个单词的边界([\b]匹配的是退格符) \B:匹配非单词边界的位置 (?=p):零宽正向先行断言,要求接下来的字符都与p匹配,但不能包括匹配p的那些字符 (?!p):零宽负向先行断言,要求接下来的字符串不与p匹配 示例: [...]:方括号内的任意字符 [^...]:不在方括号内的任意字符 [a-z]:匹配a-z中任意一个字符 [^a-z]:匹配除了a-z的任意一个字符 .:除换行符和其他 Unicode 行终止符之外的任意字符 \w:任何 ASCII 字符组成的单词,等价于[a-zA-Z0-9_] \W:任何不是 ASCII 字符组成的单词,等价于[^a-zA-Z0-9_] \s:任何 Unicode 空白符 \S:任何非 Unicode 空白符的字符,注意\w和\S不同 \d:任何 ASCII 数字,等价于[0-9] \D:除了 ASCII 数字之外的任何字符,等价于[^0-9] [\b]:退格直接量(特例) 示例: {n, m}:匹配前一项至少n次,但不能超过m次 {n, }:匹配前一项n次或者更多次 {n}:匹配前一项n次 ?:匹配前一项0次或者1次,也就是说前一项是可选的,等价于{0, 1} +:匹配前一项1次或多次,等价于{1, } *:匹配前一项0次或多次,等价于{0, } 示例: |:选择,匹配的是该符号左边的子表达式或右边的子表达式 (…):组合,将几个项组合为一个单元,这个单元可通过“*”、“+”、“?”和“|”等符号加以修饰,而且可以记住和这个组相匹配的字符串以供此后的任何使用 (?: …):只组合,把项组合到一个单元,但是不记忆与改组相匹配的字符 \n:和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式(也有可能是嵌套的),组索引是从左到右的左括号数,“(?:”形式的分组不编码 示例: JavaScript正则表达式 标签:构造函数 regex pre 整数 单个字符 正则表达式 不同 col 只读 原文地址:https://www.cnblogs.com/Leophen/p/11140621.htmlRegular Expression
)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式,是用于匹配字符串中字符组合的模式。一、JS 如何创建正则表达式?
通过直接量定义(
隐式创建
)var str = ‘I love js‘;
var pattern = /js/;
// test exec
console.log(pattern.test(str)); //true
console.log(pattern.exec(str)); //"js"
通过构造函数定义(
显式创建
)var str = ‘I love js‘;
var pattern = new RegExp(‘js‘);
console.log(pattern.test(str)); //true
console.log(pattern.exec(str)); //"js"
二、正则表达式修饰符
ignoreCase
)global
)multiline
)//字面量
var pattern = /js/i;
//构造函数
var pattern = new RegExp(‘js‘, ‘i‘);
三、正则表达式直接量字符
\u0000
)\u0009
)\u000A
)\u000B
)\u000C
)\u000D
)//字面量
var pattern = /\t/;
//构造函数(‘\’要翻倍)
var pattern = new RegExp(‘\\t‘);
四、正则表达式锚字符
//字面量
var pattern = /[^js]/;
//构造函数
var pattern = new RegExp(‘[^js]‘);
五、正则表达式字符类
//字面量
var pattern = /[\u4e00-\u9fa5]/; //汉字
//构造函数
var pattern = new RegExp(‘[\u4e00-\u9fa5]‘);
六、正则表达式重复
var str = ‘aaab‘;
var pattern1 = /a+/;
console.log(pattern1.exec(str)); //"aaa"
var pattern2 = /a+?/;
console.log(pattern2.exec(str)); //"a"
var pattern3 = /a+b/;
console.log(pattern3.exec(str)); //"aaab"
var pattern4 = /a+?b/;
console.log(pattern4.exec(str)); //"aaab"
七、正则表达式选择、分组和引用
var str = ‘abcd‘;
var pattern1 = /(ab)c/;
console.log(pattern1.exec(str)); //"abc", "ab"
var pattern2 = /(?:ab)c/;
console.log(pattern2.exec(str)); //"abc"
var pattern3 = /(ab)(c)/;
console.log(pattern3.exec(str)); //"abc", "ab", "c"
var pattern4 = /(a(b(c)))/;
console.log(pattern4.exec(str)); //"abc", "abc", "bc", "c"
var str = ‘ab cd ab‘;
var pattern5 = /(ab) cd \1/;
console.log(pattern5.exec(str)); //"ab cd ab", "ab"
八、用于模式匹配的String方法
var str = ‘html js js‘;
console.log(str.search(‘js‘)); //5
var pattern = /js/g;
console.log(str.search(pattern)); //5
示例:var str = ‘I love js js‘;
console.log(str.replace(‘js‘, ‘html‘)); //I love html js
var pattern = /js/g;
console.log(str.replace(pattern, ‘html‘)); //I love html html
示例:var str = ‘js js js‘;
var pattern = /(j)s/;
console.log(str.match(pattern)); //"js", "j"
var pattern = /(j)s/g;
console.log(str.match(pattern)); //"js", "js", "js"
示例:var str = ‘html,css,js‘;
console.log(str.split(‘,‘)); //"html", "css", "js"
var pattern = /,/g;
console.log(str.split(pattern)); //"html", "css", "js"
九、正则表达式RegExp对象
每个 RegExp 对象都有5个属性:
示例:var str = ‘js js js‘;
var pattern = new RegExp(‘\\b‘, ‘i‘);
console.log(pattern.ignoreCase); //true
console.log(pattern.global); //false
console.log(pattern.multiline); //false
console.log(pattern.source); //\b
console.log(pattern.lastIndex); //0
示例:var str = ‘js js js‘;
var pattern = /js/;
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //0
var str = ‘js js js‘;
var pattern = /js/g;
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //2
pattern.test(str);
console.log(pattern.lastIndex); //5
pattern.test(str);
console.log(pattern.lastIndex); //8
pattern.test(str);
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //2
RegExp对象有两个方法:
示例:var str = ‘I love js‘;
var pattern = /js/;
console.log(pattern.exec(str)); //"js"
示例:var str = ‘I love js‘;
var pattern = /js/;
console.log(pattern.test(str)); //true
/^[\u4e00-\u9fa5]{2,4}$/ //姓名
/^\d{17}[0-9x]$/ //身份证号
/^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$/ //邮箱
/^\d{11}$/ //手机号
上一篇:windows客户端开发调试工具
下一篇:网页制作重点记录