Javascript正则表达式

Javascript正则表达式:

1,正则表达式就是一种规则,就像我们通过dtd验证xml是不是符合某种规则,正则就是用来验证我们的字符串是不是符合某种规则

2,正则可以理解成筛子,将网页上我们需要的数据给筛选出来

3,正则表达式是一门语言,不依赖于任何其他的语言,只是其他语言如何去支持正则

Javascript操作正则是通过RegExp这个对象来实现的

获得这个对象:

New RegExp(正则表达式,模式修正符)

快捷语法: /正则表达式/模式修正符

常用的方法:

Test() 检测字符串是否含有符合我们规则的字符,返回布尔类型的值

Exec() 检测字符串是否含有符合我们规则的字符,如果有返回匹配到的值,否则返回null

 

如何表示一个字符:【】中有一个指定的字符

表示字符集【】

【】中  - 表示的是一个范围

[a-z]  表示小写字母

[A-Z] 大写字母
[0-9]  表示所有的数字

[za] z  a 二选1

 

[] ^ 代表非

       varreg = /[^a-z]/;

       varstr = 123;

       alert(reg.exec(str));

中括号外面  ^ 代表某个字符开始  $代表以某个字符结束

       varreg = /^h[a-z]{8}d$/;

       varstr = 'helloworld';

       alert(reg.exec(str));

 

| 代表或

       varreg  = /a|b|c/;

       varstr = 'a';

       alert(reg.exec(str));

 

表示任意字符,但是不匹配换行符(\n)

       varreg = /./;

       varstr = '*';

       alert(reg.exec(str));

 

转义字符,将后面字符原样输出

       varreg = /\./;

       varstr = 'www.hbsi.com';

       alert(reg.exec(str));

 

 

常用的转义字符来表示某个字符

\w 所有的字母数字下划线等于 [a-zA-Z0-9_]

       varreg = /\w/;  //匹配所有所有的字母数字下划线 [a-zA-Z0-9_]

       varstr = 'www.hbsi.com';

       alert(reg.exec(str));

\W  \w

\d   所有的数字

 

\D  所有的字符除了数字

\s   空格

\S  所有字符,但是除了空格

\b  字符边界(boundary

\D  所有的字符,但是除了字符边界

       varreg = /\b/; 

       varstr = 'this is my book';  //is 替换成 was

       alert(str.replace(/\bis\b/,'was'));

 

Unicode编码表示汉字

因为javascript内置的编码就是 unicode4e00-9fa5

       alert(String.fromCharCode(0x9fa5));  //需要注意:参数要求是16进制

       varreg = /[\u4e00-\u9fa5]/;

       varstr = '你好吗?';

       alert(reg.exec(str));

 

表示字符数量

{}   表示是数量范围

{最小数量,最大数量} 16}最少1次最多6

1,}  表示1到正无穷

{,5表示最多5

6  表示6

       varreg = /[a-z]{5}/;

       varstr = 'apple';

       alert(reg.exec(str))

 

   *  0次或多次  任意多

       varstr = 'jdghkuhgsiduhisdjgydf';

       varreg = /[a-z]*/;

       alert(reg.exec(str));

 

+    +   表示最少1次(1次或多次)

       varstr = 'hhheeelllooo';

       varreg = /h+e+l+o+/;

       alert(reg.exec(str));

 

? 0 次或1

       varstr = 'hello';

       varreg = /h?e?ll?o/;

       alert(reg.exec(str));

 

匹配QQ号码: /^[1-9][0-9]{3,11}$/;

 

分组的使用

在正则表达式中,我们通过()将表达式分成若干部分,在通过RegExp对象的exec将匹配的结果以数组的形式返回

下标为0 的数组返回的是整个正则表达式匹配的结果

下标为1数组,返回的是第一个分组匹配的结果

 

模式修正符

/正则表达式/模式修正符

i   ignoreCase  忽略大小写

       varstr = 'helloWORLD';

       varreg = /[a-z]*/i;

       alert(reg.exec(str));

 

global 全局匹配

       varstr = '12345hello67890';

       varreg = /\d*/g;

       alert(reg.exec(str));

m  multiline 多行匹配

正则默认情况,一个字符串就是一行,即使换行符(\n),也会当作一行来执行,单行模式能够

js代码中,我们通过\n 来换行

在前台页面,通过<br/>

       varstr = 'apple,\norange,banana';

       varreg = /^orange/m;

       alert(reg.exec(str));

 

利用字符串处理正则表达式

字符串对象的方法处理正则表达式

Match()  将正则匹配的结果输出

       varstr = '12345helloworld';

       varreg = /\w*/;

       alert(str.match(reg));

Replace()  根据正则匹配的结果,进行字符串替换

       varstr = 'this is my book';

       alert(str.replace(/\bis\b/,'was'));

 

Split() 字符串拆分,根据分隔符将字符串进行拆分

       varstr = 'www.hbsi.com';

       alert(str.split('.',3));

                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值