<!DOCTYPE html>
<html>
<head>
<meta charset="GB2312">
<title></title>
</head>
<body>
<script type="text/javascript">
/*var pattern=new RegExp('box','i');
var str='This is a Box';
alert(pattern.test(str));//test,RegExp对象的方法。在字符串中测试模式匹配,返回true或false;
*/
//使用字面量方式的test方法示例
/*var pattern=/box/i;
var str='This is a Box';
alert(pattern.test(str));*/
//alert(/box/i.test('This is a Box'));
/*var pattern=/box/i;//创建正则模式,不区分大小写
var str='This is a Box';
alert(pattern.exec(str));*/
//除了test()和exec()方法,String 对象也提供了4 个使用正则表达式的方法。
// match(pattern) 返回pattern中的子串或null
// replace(pattern,replacement) 用replacement替换pattern
// search(pattern) 返回字符串中pattern开始位置
// split(pattern) 返回字符串按指定pattern拆分的数组
// var pattern=/box/ig;
// var str='This is a Box!,That is a box too';
// alert(str.match(pattern));//Box,box
// alert(str.match(pattern).length);//2
// alert(str.search(pattern));//因为search方法查找到即返回,也就是说无需g全局
// alert(str.replace(pattern,"Cup"));
// alert(str.split(pattern)); //使用split拆分字符串数组
//RegExp对象的静态属性
/*var pattern=/(g)oogle/;
var str='This is google!';
pattern.test(str);
alert(RegExp.input);//当前被匹配的字符串
alert(RegExp.leftContext);//最后一次匹配前的子串
alert(RegExp.rightContext);//在上次匹配之后的子串
alert(RegExp.lastMatch);//最后一个匹配字符串
alert(RegExp.lastParen);//最后一对园括号内的匹配的子串
alert(RegExp.multiline);//用于指定是否所有的表达式都用于多行的布尔值
*/
//RegExp对象的实例属性
/* var pattern=/google/ig;
alert(pattern.global);//Boolean值,表示g是否已设置
alert(pattern.ignoreCase);//Boolean值,表示i是否已设置
alert(pattern.multiline);//Boolean值,表示m是否已设置
alert(pattern.lastIndex);//整数,代表下次匹配将从哪里字符位置开始
alert(pattern.source);//正则表达式的源字符串形式
*/
/*var pattern=/google/g;
var str='google google google';
pattern.test(str);
alert(pattern.lastIndex);
*/
/*
// 使用点元字符
var pattern=/g..gle/;//.匹配一个任意字符
var str='google';
alert(pattern.test(str));
//重复匹配
var pattern=/g.*gle/; //.匹配0个或多个
var str='google';
alert(pattern.test(str));
//使用字符类匹配
var pattern=/g[a-zA-Z]*gle/; //[a-z]*表示任意个a-z中的字符
var str='google';
alert(pattern.test(str));
var pattern=/g[^0-9]*gle/;//表示任意个非0-9的字符
var str='google';
alert(pattern.test(str));
var pattern=/[a-z][A-Z]+/; //[A-Z]+表示A-Z一次或多次
var str='gOOGLE';
alert(pattern.test(str));
*/
/* //使用元符号匹配
var pattern=/g\w*gle/; // \w*匹配任意多个所有字母数字
var str='google';
alert(pattern.test(str));
var pattern=/google\d; // \d*匹配任意多个数字
var str='google123';
alert(pattern.test(str));
var pattern=/\D{7,}/; // \D{7,} 匹配至少7个非数字
// var pattern=new RegExp('\D{7,}');
var str='googleabc';
alert(pattern.test(str));
*/
/*
//使用锚元字符匹配
var pattern=/^google$/;//^从开头匹配,$从结尾开始匹配
var str='google';
alert(pattern.test(str));
var pattern=/goo\sgle/; //\s可以匹配到空格
var str='goo gle';
alert(pattern.test(str));
var pattern=/google\b/; //\b可以匹配是否到了边界
var str='google() a';
alert(pattern.test(str));
*/
/*
//使用或模式匹配
var pattern=/google|baidu|bing/;
var str='google';
alert(pattern.test(str));
*/
/*//使用分组模式匹配
var pattern=/(google){4,8}/;//匹配分组里的字符串4-8次
var str='googlegoogle';
alert(pattern.test(str));
var pattern=/8(.*)8/; //获取8..8之间的任意字符
var str='This is 8google8';
str.match(pattern);
alert(RegExp.$1);//得到第一个分组里的字符串内容
var pattern=/8(.*)8/;
var str='This is 8google8';
var result=str.replace(pattern,'<strong>$1</strong>');//得到替换的字符串输出
document.write(result);
var pattern=/(.*)\s(.*)/;
var str='google baidu';
var result=str.replace(pattern,'$2 $1');//将两个分组的值替换输出
document.write(result);
*/
//关于贪婪和惰性
/* var pattern=/[a-z]+?/; //?号关闭了贪婪匹配,只替换了第一个
var str='abcdefjhijklmnopqrstuvwxyz';
var result=str.replace(pattern,'brozer');
alert(result);
var pattern=/8(.+?)8/g; //禁止了贪婪,开启了全局
var str='This is 8google8,That is 8google8,There is 8google8';
var result=str.replace(pattern,'<strong>$1</strong>');
document.write(result);
var pattern=/8([^8]*)8/g; //另一种禁止贪婪
var str='This is 8google8,That is 8google8,There is 8google8';
var result=str.replace(pattern,'<strong>$1</strong>');
document.write(result);
*/
/*
//使用exec返回数组
var pattern=/^[a-z]+\s[0-9]{4}$/;
var str='google 2012';
alert(pattern.exec(str)); //返回整个字符串
var pattern=/^[a-z]+/i; //只匹配字母
var str='google 2012';
alert(pattern.exec(str));
var pattern=/^([a-z]+)\s([0-9]{4})$/i;
var str='google 2012';
alert(pattern.exec(str)[0]);
alert(pattern.exec(str)[1]);
alert(pattern.exec(str)[2]);
*/
/*//捕获性分组和非捕获性分组
var pattern=/(\d+)([a-z])/;
var str='123abc';
alert(pattern.exec(str));
var pattern2=/(\d+)(?:[a-z])/;
var str2='123abc';
alert(pattern.exec(str2));
var pattern3=/(A?(B?(C?)))/;
var str3='ABC';
alert(pattern3.exec(str3));
*/
//常用的正则
/*//1检查邮政编码
var pattern=/[1-9][0-9]{5}/;
var str='362411';
alert(pattern.test(str));
*/
/*
//2检查文件压缩包
var pattern=/\w+\.zip|rar|iso|gz/; //特殊字符,用\符号转义即可
var str='123.zip';
alert(pattern.test(str));
*/
/*
//3 删除多余空格
var pattern=/\s/g;
var str='111 222 333';
var result=str.replace(pattern,'');
alert(result);
*/
/*//4删除首尾空格
var pattern=/^\s+|\s+$/g;
var str=' goo gle ';
var result=str.replace(pattern,'');
alert(str);
alert('|'+result+'|');
*/
/* var pattern=/^\s+/;
var str=' goo gle ';
var result=str.replace(pattern,'');
pattern=/\s+$/;
result=result.replace(pattern,'');
alert('|'+result+'|');
*/
</script>
</body>
</html>
Javascript—正则表达式(操作指南)
最新推荐文章于 2022-06-12 18:42:44 发布