js正则表达式

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
window.onload=function(){
//正则表达式的两种创建方式
// //第一种方法
//
// var box = new RegExp('box');
// var box = new RegExp('box','gi');//第一个参数必选,第二个参数可选
//
// //第二种方法,字面量的方式
// var box = /box/;
// var box = /box/gi; //与上面的对应
//
//RegExp对象有两个方法
//
// var pattern = new RegExp('box','i');
// var str = 'box';
// alert(pattern.test(str));//true
// alert(/boX/i.test(str));//true
// alert(/box/i.test('boxjj'))//true;
//
// var pattern = /box/i;
// var str = 'i am a box ~';
// alert(pattern.exec(str))//box,返回的是数组,有的话就返回数组的值,没有的话就返回null
// alert(typeof pattern.exec(str));//object 是一个数组类型,数组就是object


// string 对象的正则表达式
// 一.match方法
// var pattern =/box/ig;
// var str='this is a Box,that is a box';
// alert(str.match(pattern));// Box,box 如果没有g匹配全局的话,则返回第一个 符合条件的 Box,
////注意这里返回的 都是 数组例如下面的
// var a=str.match(pattern);
// alert(a[0]) //box
//
//// 二.Search方法
// var pattern = /box/ig;
// var str = 'this is Box,that is box';
// alert(str.search(pattern));//8第一个匹配到的位置 ,ps:从0开始包括空格,因为seach方法查找到即返回,所以无需全局
// //如果找不到则返回 -1
// 三、replace 方法
// var pattren = /jack/ig;
// var str = 'jack ,JaCk,i am jAcK';
// alert(str.replace(pattren,'Tom'));//返回的是 Tom,Tom,i am Tom
//如果没有全局匹配,则只会更改第一个
//// 四/split方法
// var pattern = / /ig;
// var str = 'a a a';
// alert(str.split(pattern));//a,a,a
// alert(str.split(pattern).length)//3
//RegExp的静态属性
// var pattern = /google/g;
// var str='this is google!!!';
// pattern.test(str); //必须执行一下,静态属性才有效

// alert(RegExp.input);//this is google;
// alert(RegExp.leftContext);//this is ;包括空格呦
// alert(RegExp.rightContext);//!!!;
// alert(RegExp.lastMatch);//google没啥用,就是返回最后一个匹配到的
// ps:这些东西都没啥用,只是作为了解一下
//
////*****************元字符
// 元字符.
// var pattern =/g..le/;
// var str = 'gxxle';
// alert(pattern.test(str));//true 点符号标识匹配任意除了换行符外的字符
//
// 元字符*
// var pattern = /go*le/; //表示0个,或多个 o;
// var str = /gooogle/;
// alert(pattern.test(str));//true
// 元字符?
// var pattern = /go.?le/; //表示 go与le之间存在一个 或者 0个 任意的字符
// // var pattern = /go.{3,5}/; /表示匹配最少三个最多五个字符
// "/go{3,}gle/表示匹配3或者3+次o,/go{3}gle/表示匹配三次o
// var str = 'gokle';
// alert(pattern.test(str));//true

//、var pattern = /[a-z]oogle/;
//[a-z]表示26个小写字母,任意一个都可以匹配、区分大小写,如需要课在后面用 i修饰符,或者[A-Z]
//[0-9]与之类似
// 可以写成复合形式 [a-zA-Z0-9 ] 匹配任意在 括号里面的字符
// [^a-zA-Z0-9] 匹配 不包含任意括号里面的任意字符


//锚字符匹配
// var pattern =/^[0-9]oogle/; //这个^符号加载/后面表示从行首开始匹配,如果在[]里面表示非

//var pattern = /woogle/ 就相当于 var pattern = /[a-zA-Z0-9_]oogle/
//var pattern = /Woogle/ 就相当于 var pattern = /[^a-zA-Z0-9]oogle/
// 详细结构如下图
var pattern =/^[a-z]oogl[0-9]$/; //ps:^表示强制首匹配,$表示强制尾匹配
var str='ggoogl5'; alert(pattern.test(str));//false 1
var str1='googl55';alert(pattern.test(str1));//false 2
var str2='googl5'; alert(pattern.test(str2));true

//ps:上面的 1(pattern=/^[a-z]*oogle$)2(pattern = /googl[0-9]*)才能是true 这个一得得注意








}
</script>

</body>
</html>

原文地址:https://www.cnblogs.com/zhangxiaofei/p/6762630.html