-
正则表达式定义
- 正则表达式是用来检索字符串是否有匹配规则的一个js对象
-
正则表达式应用
- 正则表达式主要用在登录和注册表单里面,针对用户输入的数据进行验证
-
正则表达式创建
//第一种方式
var exeg=new RegExp(“检索内容”,“修饰符”)
//第二种方式
var exeg=/检索内容/修饰符; -
正则表达式的使用
//第一种方式
var str=“hello wolrd”;
var exeg=new RegExp(“e”);
console.log(exeg.test(str))//查找字符串中是否有e字符,有则返回true,无则返回false
console.log(exeg.exec(str))//查找字符串中是否有e字符,有则返回所在索引,无则返回-1
console.log(exeg.compile(/abc/))//使用abc修改原有正则表达式e//第二种方式 var str="hello wolrd"; var exeg=/e/; console.log(exeg.test(str))//查找字符串中是否有e字符,有则返回true,无则返回false console.log(exeg.exec(str))//查找字符串中是否有e字符,有则返回所在索引,无则返回-1 console.log(exeg.compile(/abc/))//使用abc修改原有正则表达式e
-
正则表达式语法
-
修饰符
-
i:忽略大小写
var str=“hello wolrd”;var exeg=/E/; console.log(exeg.test(str))//false var exeg=/E/i; console.log(exeg.test(str))//true
-
g:全局匹配
var str=“hello wolrd”;var exeg=/o/; console.log(str.match(exeg))//o var exeg=/o/g; console.log(str.match(exeg))//o o
-
m:多行匹配
var str=/hello\nwolrd/;var exeg=/^w/; console.log(exeg.test(str))//false; var exeg=/^w/m;//因为\n是换行符,而w字符处于第二行的开头 console.log(exeg.test(str))//true;
-
-
元字符
-
^:在正则中表示以什么开头,在集合中表示除了集合之内的
var exeg=/^a/;var str="abcd"; console.log(exeg.test(str))//true var str="babcd"; console.log(exeg.test(str))//false ------------------------------------------------------------------------ var exeg=/[^abcd]/; var str="abcde"; console.log(exeg.test(str))//true,字符e不在集合以内,所以符合 var str="babcd"; console.log(exeg.test(str))//false
-
: 在 正 则 中 表 示 以 什 么 结 尾 v a r e x e g = / a :在正则中表示以什么结尾 var exeg=/a :在正则中表示以什么结尾varexeg=/a/;
var str="abcda"; console.log(exeg.test(str))//true var str="babcd"; console.log(exeg.test(str))//false
-
|:表示或,任何一个条件成立。
var exeg=/hello|wolrd/;var str="hello word"; console.log(exeg.test(str))//true,匹配hello var str="hell world"; console.log(exeg.test(str))//true,匹配world
-
.:任意字符
var exeg=/./;var str="hello word"; console.log(exeg.test(str))//true, var str="1234566"; console.log(exeg.test(str))//true,
-
:表示转译
var exeg=/./;
备注:本来.在正则中表示任意字符,但是在\的作用下,就变成了实际意义的.,不在表示任意字符
var str=“helloword”;
console.log(exeg.test(str))//false,因为没有点var str="hell.world"; console.log(exeg.test(str))//true,有点
-
\d:表示0-9的数字字符
var exeg=/\d/;
备注:本来.在正则中表示任意字符,但是在\的作用下,就变成了实际意义的.,不在表示任意字符
var str=“helloword”;
console.log(exeg.test(str))//false,因为没有数字var str="hell3world"; console.log(exeg.test(str))//true,有数字3
-
\D:非数字字符
var exeg=/\D/;
备注:本来.在正则中表示任意字符,但是在\的作用下,就变成了实际意义的.,不在表示任意字符
var str=“helloword”;
console.log(exeg.test(str))//true,因为没有数字var str="hell3world"; console.log(exeg.test(str))//true,因为除了3之外还有别的英文字符
-
\w:表示单词字符
var exeg=/\w/;
备注:单词字符不含字母,数字和下划线
var str=“helloword”;
console.log(exeg.test(str))//true,因为没有数字var str="hell3world"; console.log(exeg.test(str))//true,因为除了3之外还有别的英文字符
-
\W:表示非单词字符
var exeg=/\W/;var str="helloword"; console.log(exeg.test(str))//false,因为没有数字 var str="hell3world"; console.log(exeg.test(str))//false,因为除了3之外还有别的英文字符
-
\s:表示空白符
var exeg=/\s/;var str="hello word"; console.log(exeg.test(str))//true,因为有空格 var str="hell3world"; console.log(exeg.test(str))//false,
-
\S:非空白符
var exeg=/\S/;var str="helloword"; console.log(exeg.test(str))//true,因为有空格 var str="hell3world"; console.log(exeg.test(str))//true,
-
-
量词
-
+:至少匹配一次
var str=“helloword”;var exeg=/el+o/; console.log(exeg.test(str))//true,因为有连续两个ll var exeg=/^el+o$/; console.log(exeg.test(str))//false,因为字符串不是以e开头,
-
*:匹配零次或者多次
var str=“heoword”;var exeg=/el*o/; console.log(exeg.test(str))//true,因为l可以不出现 var str="helloword"; var exeg=/el*o/; console.log(exeg.test(str))//true,因为ll可以有多个
-
?:匹配零次或者1次
var str="heoword"; var exeg=/el?o/; console.log(exeg.test(str))//true,因为l可以不出现 var str="helloword"; var exeg=/el*o/; console.log(exeg.test(str))//false,因为ll不可以有多个
-
{}
-
{x,}
var str=“heoword”;var exeg=/el{1,}o/; console.log(exeg.test(str))//false,因为l至少出现一次
-
{x,y}
var str=“helloword”;
var exeg=/el{1,3}o/;
console.log(exeg.test(str))//false,因为l可以有1-3个
-
-
-
分组和$n
var str=“hello wolrd”;var exeg=/^hello|world$/; console.log(exeg.test(str))//true var exeg=/^(hello)|world)$/; console.log(exeg.test(str))//false var exeg=/^(\w)\s(\w))$/; console.log(str.replace(exeg,"$2 $1"))//world hello => $1=hello $2=world
-
正则表达式教程
最新推荐文章于 2022-01-01 23:41:43 发布