JS正则表达式
正则表达式:描述一个字符模型的对象,由一些特殊的符号组成,其组成的字符模型用来匹配各种表达式
正则表达的创建
直接量创建
<script>
var patt1 = /is/g;
</script>
实例化RegExp对象
<script>
var patt = new RegExp("is","g");
</script>
- //i执行对大小写敏感的匹配
- //g 执行全局匹配
- //m执行多行匹配
<script>
var str = "is this all there is";
//查找str里面所有包含is字符串的
var patt1 = /is/g;
//输出: is,is,is
document.write(str.match(patt1));
</script>
正则表达式的方括号([])
- [abc] 查找【】里面的任何字符(a,b,c)中的其中一个
- /[abc]his/ 匹配的字符为:[abc]里面的字符+his,结果:ahis,bhis,chis
- [^abc] 查找不包括a,b,c的字符
- [0-9] 查找任何从0至9的数字
- [a-z] 查找任何从小写a到小写z的字符
- [A-Z] 查找任何从大写A到Z的字符
- [a-zA-Z]查找任何字母
- red|blue|green 查找任何指定项:
查找的是red,blue,green中的其中一个,当[red|blue|green]查找的里面的单个字符,如:,r,e,d,b….
<script>
var str = "is this all 3389 5there is";
var patt1 = /[abc]/;//与/[(abc)]/写法相同
console.log("[abc]:"+str.match(patt1));
// [abc]his匹配的字符为:[abc]里面的字符+his,结果:ahis,bhis,chis
var patt2 = /[abc]his/;
//打印:null
console.log("[abc]his:"+str.match(patt2));
var patt3 = /[thf]his/;
console.log("[thf]his:"+str.match(patt3));
var patt4 = /[^abc]/g;
console.log("/[^abc]/:"+str.match(patt4));
var patt7 = /[0-9]/g;
console.log("/[0-9]/g:"+str.match(patt7));
var patt8 = /[^0-9]/g;
console.log("/[^0-9]/g:"+str.match(patt8));
var patt5 = /red|blue|green/;
console.log("/red|blue|green/:"+str.match(patt5));
var patt6 = /[red|blue|green]/;
console.log("/[red|blue|green]/:"+str.match(patt6));
</script>
正则表达式常用符号
- ^ 匹配字符串的开始,查找字符串的开头是以xxx开始的
- $ 匹配字符串的结束,查找字符串的结束是一xxx结束的
- \ 代表转义的
- \s 空格,也可以直接空格
- \S 任何非空白字符
- \d 匹配一个数字字符,等价于[0-9]
- \D 出来数字以外的任何字符,等价于[^0-9]
- \w 匹配一个数字、下划线或字母,等价于[A-Za-z0-9]
- . 除了换行符之外的任意字符
<script>
var str = "is this all _ _W 3389 5there is ttt ";
//str开始是以:is开头的
var patt1 = /^is/g;
console.log("/^is/g:"+str.match(patt1));
//str结束是:ttt
var patt2 = /ttt$/g;
console.log("/ttt$/g:"+str.match(patt2));
//空格
var patt3 = /\s/g;
console.log(" /\s/g:"+str.match(patt3));
//空格
var patt4 = / /g;
console.log(" / /g:"+str.match(patt4));
//非空格
var patt5 = /\S/g;
console.log("/\S/g:"+str.match(patt5));
//0-9
var patt6 = /\d/g;
console.log(" /\d/g:"+str.match(patt6));
//[^0-9]
var patt7 = /\D/g;
console.log(" /\D/:"+str.match(patt7));
//匹配一个数字、下划线或字母
var patt8 = /\w/g;
console.log("/\w/g:"+str.match(patt8))
//除了换行符之外的任意字符
var patt9 = /./g;
console.log("/./g:"+str.match(patt9))
</script>