查看: 288|回复: 0

[JavaScript/JQuery] 爱创课堂 前端教程 js基础 精确匹配 预定义特殊字符 修饰符

发表于 2017-12-6 09:16:35
三、正则表达式的术语和操作符3.1 精确匹配正则表达式:由一些普通字符和一些特殊字符(又叫元字符--metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。

javascript中常用特殊字符有  ( ) [ ] { } \ ^ $ | ? * + .

若想匹配这类字符必须用转义符号 \ 如:\(,\^,\\

我们要匹配的正则表达式里,没有特殊符号或者操作符。我们要想匹配这些常量、普通字符,我们只能去进行精确匹配,字符串里出现的字符必须在正则里直接书写。

比如:想测试字符串”abcnddjgkgk”中是否有“abc”

1 console.log(/abc/.test("abcnddjgkgk"));
2 // 精确匹配,就是必须具有abc这三个字母,并且顺序也不能颠倒。
3.2 预定义特殊字符\t /\t/ 制表符  

\n /\n/ 回车符

\f /\f/ 换页符

\b /\b/ 空格

3.3 字符集我们之前使用的都是一个字符匹配一个字符。

我们想用一类字符匹配一个字符。这就需要用字符集。

字符集:[],将一类字符的可能性都写在中括号之内。

简单类:正则的多个字符对应一个字符,我们可以用[]把它们括起来,让[]这个整体对应一个字符[abc]

1 var str = "sanasdnbjkdscndsbnb";
2 //[abc]表示一类字符集的可能性,可以是a,可以是b,可以是c
3 console.log(str.match(/s[abc]n/g));


范围类:要匹配的字符太多,我们可以利用一个范围将可能性都包含在内。[a-z]、[0-9]、[A-Z]

1 // 范围类[a-z],[A-Z],[0-9]
2 console.log(/[a-z]/.test("我想看看y你这里有没有字母"));
3 console.log(/[0-9]/.test("我想看看9你这里有没有字母"));

负向类:[]前面加个元字符(^)进行取反,表示匹配不能为括号里面的字符。

1 // 负向类
2 var str = "sanasdnbjkdscndsbnbsknkkdkksyn";
3 // [^abc]表示一类字符集的可能性,不可以是a,不可以是b,不可以是c
4 console.log(str.match(/s[^abc]n/g));


组合类:允许用中括号匹配不同类型的单个字符。

1 // 组合类,不同类型的数据类型写一起
2 var str = "sanas0nbjkdscnds6nbsknkkdkksYn";
3 // 只要是s*n这种字符组合就输出
4 console.log(str.match(/s[a-z0-9A-Z]n/g));
3.4 字符的边界^ 开头。表示字符串能够到匹配到以^后面字符串开头。(千万不能写在左中括号后面。)

1 // 开头^
2 console.log(/^hello/.test("hello icketang"));
3 console.log(/^ello/.test("ello icketang"));


$ 结尾。表示字符串能够匹配到以$前面的字符串结尾的字符串。

1 // 结尾$
2 console.log(/icketang$/.test("hello icketang"));
3 console.log(/icketann$/.test("hello icketang"));

\b  单词的边界。用于查找位于单词的开头或结尾的匹配。


\B 非单词的边界。用于查找不处在单词的开头或结尾的匹配

3.5 修饰符g 表示全局匹配。能够在全局范围内匹配。

用法:g写在正则表达式的最后

1 /表达式/g

1 console.log("sanjfkfjsanjjjjjsanfff".match(/san/));
2 //g表示全局匹配
3 console.log("sanjfkfjsanjjjjjsanfff".match(/san/g));


i 表示对大小写不敏感。也就是不区分大小写

1 console.log("sAnjfkfjsanjjjjjsAnfff".match(/san/i));


可以连续书写修饰符
1 console.log("sAnjfkfjsanjjjjjsAnfff".match(/san/ig));

本文章版权归爱创课堂所有,转载请注明出处。

更多详细内容请访问爱创课堂官网首页

http://www.icketang.com/


回复

使用道具 举报

关闭

站长推荐上一条 /1 下一条