首页 > Web开发 > 详细

js正则表达式

时间:2017-03-04 12:37:19      阅读:156      评论:0      收藏:0      [点我收藏+]

定义正则表达式

//定义
var pattern=new RegExp(‘box‘,‘gi‘);
var pattern=/[0-9]/gi;

字符串测试方法

test:匹配结果返回true,false

exec:匹配结果放回匹配的字符串

var pattern=/[0-9]/gi;

str="there are 34 box";
var res1=pattern.test(str);//true
//exec匹配到返回数组,匹配不到返回null
var res2=pattern.exec(str);//3

字符串的正则方法

/*
字符串的正则方法
match  返回匹配的数组或null
replace  替换
serach   返回开始的位置
split 拆分字符串为数组
*/
var pattern=/box/gi;

str="is box 1 - Box 2";
//var res=str.match(pattern);//box,Box
//var res=str.replace(pattern,‘desk‘);//desk 1 - desk 2
//var res=str.search(pattern);//3
var res=str.split(pattern);//以box作为拆分原则,返回is , 1 - , 2

正则表达式的静态属性

/*静态属性,用处不大*/
var pattern=new RegExp(‘baidu‘);
var str="this is baidu !!!";
pattern.test(str);//必须执行一次,静态属性才有效

document.write(RegExp.input);//this is baidu !!!
document.write(RegExp.leftContext);//前子串 this is
document.write(RegExp.rightContext);//后子串 !!!

获取控制

/*获取控制*/
var pattern=/^baidu[0-9]$/gi;
var str="baidu8";
/*
[0-9]  \d
[^0-9]  \D
\w  //字母数组及下划线
\W  //非字母数字及下划线
+  1个或多个
?  0个或1个
*  任意个
{m,n} 最少m个,最多n个
{m,} m个或以上
{m}  只能m个   [a-z]{3}
^  行首匹配
$  行尾匹配   /^baidu$/完全匹配str="baidu"
*/
/*获取控制*/
var pattern=/8(.*)8/gi;
var str="8 is baidu8";
/*
\s  空格
\b  是否到达边界
|   或//   /baidu|google|bing/
RegExp.$1  获取第一个分组的内容
*/
//分组匹配
pattern.test(str);
alert(RegExp.$1);   //is baidu

 分组内容的替换

/*获取控制*/
var pattern=/(.*)\s(.*)/gi;
var str="baidu google";

document.write(str.replace(pattern,‘<strong>$1</strong>‘));
document.write(str.replace(pattern,‘<strong>$2,$1</strong>‘));//google,baidu
//捕获性分组,所有分组都捕获
var pattern=/(d+)([a-z])/gi;
//非捕获分组(不捕获第二个分组) ?:
var pattern=/(d+)(?:[a-z])/gi;
//前瞻性捕获(goo后面必须为gle) ?=
var pattern=/goo(?=gle)/gi;
var str="google";
//嵌套分组
var str="abc";
var str=/(a?(b?(c?)))/;
a[0]  整个字符串 abc
a[1]  第一个分组,abc
a[2]  第二个分组 bc
a[3]  第三个分组 c

 

js正则表达式

原文:http://www.cnblogs.com/yestian/p/6500679.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!