整理了部分正则表达式!

本代码经测试可完美运行,有问题者可发送邮件到:CarsonRyan696@gmail.com 
console.show()

/**
 * test方法:
 * 格式为:规则.test(字符串) 
 * 作用:用来判断字符串中是否含有此规则的字符  有返回true 没有返回false
 */
var rule = /he/;//这是要匹配的规则
var str = "he"; //这是要匹配的字符串
console.info(rule.test(str));//返回:true
var str = "we";
console.info(rule.test(str));//返回:false
/*-------------------------------------------------------------*/
var rule = /he/;//这是要匹配的规则
var str = "HE"; //这是要匹配的字符串
console.info(rule.test(str));//返回:false  这里是区分大小写的
//如果想要不区分大小写匹配的话,需要修改规则!
var rule = /he/i;   //在规则后方加上i就可以了
console.info(rule.test(str));//返回:true
var str = "Certainly!He loves her!";
console.info(rule.test(str));//返回:true,只要包含he或HE就符合
/*-------------------------------------------------------------*/
var str = "Certainly!He loves her!";
var rule = /^he/i;   //(^)代表字符开始位置  这个规则的意思是:不区分大小写匹配he开头的字符  如果he在开头返回true,否则返回false
console.info(rule.test(str));//返回:false 因为he不在str最开始,所以返回false
var str = "HE is a good boy!";
console.info(rule.test(str));//返回:true  HE是字符开始位置,返回true
var rule = /^he$/i;//$表示字符结束位置   这个规则的意思是:不区分大小写匹配以he开头并以he结尾的字符 不可以带标点符号  否则也会返回false
console.info(rule.test(str));//返回:false  HE是开头但不是结尾
var str = "He";
console.info(rule.test(str));//返回:true  He是开头也是结尾
/*-------------------------------------------------------------*/
var rule = /\s/;    // \s匹配任何空白字符,包括空格、制表符、换页符等等
var str = "user Name";  //用户名包含空白字符
console.info(rule.test(str));// 返回:true
var str = "user     Name";  //用户名包含制表符
console.info(rule.test(str));   // 返回:true
var rule = /^[a-z]/i;   // []:匹配指定范围内的任意字符   /^[a-z]/i:将不区分大小写匹配英文字母a-z开头的字符
var str = "variable Name";   //变量名必须以字母开头
console.info(rule.test(str));   // 返回:true
var str = "123abc";
console.info(rule.test(str));   // 返回: false 
/*-------------------------------------------------------------*/
var osVersion = "Ubuntu 8";
var rule = /^[a-z]+\s+\d+$/i; // +:字符可以出现多次但至少要出现1次   \s:匹配空格字符   \d:匹配数字   
//这个规则的意思是:不区分大小写匹配英文字母a-z开头,中间为空格字符,以数字结尾的字符,这些都至少出现一次,才返回true
console.info(rule.test(osVersion));   // 返回:true 
/*-------------------------------------------------------------*/
var str = "?";
//var re = /?/;
//console.info(re.test(str));//报错:SyntaxError语法错误  因为?是元字符,必须转义。
var rule = /\?/;
console.info(rule.test(str));//返回:true
var str = "\?";    //  \将?转义  相当于:var str = "?"
console.info(str);      //只会输出符合 ?
var rule = /\\?/;       //将匹配?   第一个\用来转义?  第二个\用来转义了\
console.info(str)
console.info(rule.test(str)); //true
var rule = new RegExp("\\?");      // 将匹配?
console.info(rule.test(str));       //true
/*=================================================================*/


/**
 * 方法exec:
 * 格式为:规则.exec(字符串)
 * 作用:从字符串中,按照指定的规则取出字符。
 */
var osVersion = "Ubuntu 8";
var rule = /^[a-z]+\s+\d+$/i;   //将取全部字符串
var arr = rule.exec(osVersion);
console.info(arr[0]);  //返回:Ubuntu 8 
var rule = /[a-z]+/i;  //这个规则的意思是:不区分大小写取字符串中a-z的字母
var arr = rule.exec(osVersion);
console.info(arr[0]);  //返回:Ubuntu
var rule = /\d+/;      //这个规则的意思是:只取字符串中的数字
var arr = rule.exec(osVersion);
console.info(arr[0]);  //返回:8
/*-------------------------------------------------------------*/
var osVersion = "Ubuntu 8";
var rule = /^[a-z]+\s+(\d+)$/i;//我们还可以用()来创建子匹配  ()里边就是子匹配的内容
var arr = rule.exec(osVersion);
console.info(arr[0]);//返回:Ubuntu 8   
console.info(arr[1]);//返回:8 第一个子匹配
console.info(arr.length);//返回:2
var osVersion = "Ubuntu 8.10";//取出主版本号和次版本号
var rule = /^[a-z]+\s+(\d+)\.(\d+)$/i;//  .属于正则表达式元字符之一,若要用它必须要用转义字符\进行转义  转义完成之后它就表示:一个普通的.
var arr = rule.exec(osVersion);
console.info(arr[0]);//返回:Ubuntu 8.10
console.info(arr[1]);//8
console.info(arr[2]);//10
/*=================================================================*/

/**
 * 方法replace:
 * 格式为:字符串.replace("原字符串中的字符","想要替换的字符")
 * 作用:将字符串中某个确定的字符串,替换成想要的字符串!
 */
var str = "some money";
console.info(str.replace("some", "much")); //返回:much money
//replace的第一个参数可以为正则表达式  
var rule = /\s/;  //空白字符
console.info(str.replace(rule, "%"));//返回:some%money  按照(rule)指定规则,将(str)字符串中的空格字符变为%
//在不知道字符串中有多少空白字符时,正则表达式极为方便
var str = "some some     \tsome\t\f"; // \t:制表符  \f:换页符
var rule = /\s+/;                    //一个正则表达式只能进行一次匹配,\s+匹配了第一个空格后就退出了
console.info(str.replace(rule, "#"));  //返回:some#some     some
var rule = /\s+/g;                  //g,全局标志,将使正则表达式匹配整个字符串
console.info(str.replace(rule, "@"));//some@some@some@
/*=================================================================*/

/**
 * 与方法replace相似的是split:
 * 格式为:字符串.split(正则表达式)
 * 作用:将字符串按照指定的规则进行切割,并返回一个新的字符串数组。
 */
var str = "a-bd-c";
var arr = str.split("-");
console.info(arr)       //返回:["a","bd","c"]
// -是我们确定的,但是如果我们不确定中间是什么字符,又该如何呢?
var str = "a_db-c-A";
var rule = /[^a-z]/i;//^不在[]表示字符开始,但在[]里它表示非的意思。  这个规则的意思是:不区分大小写匹配非a-z字母的字符
console.info(str.split(rule)) //返回:["a","db","c","A"]  匹配任何不在指定范围内的任意字符,这里将去除字母的所有字符
/*=================================================================*/

/**
 * 在字符串中查找时我们常用indexOf,与之对应用于正则查找的方法是search
 * 格式为:字符串.search(正则表达式)
 * 作用:按照指定的规则在字符串中进行查找,并返回符合规则的字符的索引。
 */
var str = "My age is 18.Golden age!";//年龄不是一定的,我们用indexOf不能查找它的位置  
var rule = /\d+/;
console.info(str.search(rule));//返回:10   10:查找到的字符串的索引  
//注意,因为查找本身就是出现第一次就立即返回,所以无需在search时使用g标志
//下面的代码虽然不出错,但g标志是多余的  
var rule=/\d+/g;
console.info(str.search(rule));//仍然是10
/*=================================================================*/

//"*"匹配它前面元字符0次或多次
/**
 * 方法match:
 * 格式为:字符串.match(正则表达式)
 * 作用:可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
 */
var str = "My name is CJ.Hello everyone!";
var rule = /[A-Z]/;//匹配所有大写字母
var arr = str.match(rule);//返回数组
console.info(arr);//数组中只会包含一个M,因为我们没有使用全局匹配
var rule = /[A-Z]/g;
var arr = str.match(rule);
console.info(arr);//['M','C','J','H']
//从字符串中抽取单词
var rule = /\b[a-z]*\b/gi;  // \b:单词边界  *:匹配它前面元字符0次或多次
var str = "one two three four";
console.info(str.match(rule));//[ 'one', '', 'two', '', 'three', '', 'four', '' ]
/*=================================================================*/

//RegExp:正则表达式对象
//input:最后用于匹配的字符串(传递给test,exec方法的字符串)
var rule = /[A-Z]/;
var str = "Hello,World!!!";
var arr = rule.exec(str);
console.info(RegExp.input);//这里的输出应该是:Hello,World!!!   可以在浏览器运行,但是在autojs中没有输出,有点疑惑!
//lastMatch 最后匹配的字符
var rule = /[a-z]/g;
var str = "hi";
var arr = rule.test(str);
console.info(RegExp.lastMatch);//h
var arr = rule.test(str);
console.info(RegExp["$&"]);//i  $&相当于是lastMatch的简写形式,必须要带[],否则会报错!
//lastParen 最后匹配的分组
var rule = /[a-z](\d+)/gi;
var str = "Class1 Class2 Class3";
var arr = rule.test(str);
console.info(RegExp.lastParen);//1
var arr = rule.test(str);
console.info(RegExp["$+"]);//2
//leftContext  返回被查找的字符串中,从开始位置到最后匹配成功的位置之前的字符
//rigthContext 返回被查找的字符串中,从开始位置到最后匹配成功的位置之后的字符
var rule = /[A-Z]/g;
var str = "123ABC456";
rule.test(str);
console.info(RegExp.leftContext);//123
console.info(RegExp.rightContext);//BC456
rule.test(str);
console.info(RegExp["$`"]);//123A
console.info(RegExp["$'"]);//C456
/*=================================================================*/

//简单类  
var rule = /[abc123]/;//将匹配abc123这6个字符中一个  
//负向类  
var rule = /[^abc]/;//将匹配除abc之外的一个字符  
//范围类  
var rule = /[a-b]/;//将匹配小写a-b 26个字母  
var rule = /[^0-9]/;//将匹配除0-9 10个字符之处的一个字符
//组合类
var rule = /[a-b0-9A-Z_]/;//将匹配字母,数字和下划线

/*=================================================================*/
var str = "abc";  
var rule = /\w+/;//将匹配abc
console.info(rule.exec(str)[0]);  
var rule = /\w+?/;//将匹配a
console.info(rule.exec(str)[0]);

var rule = /abc{2}/;  //将匹配abcc 
var rule = /(abc){1}/;  //将匹配abcabc  
//上面的分组都是捕获性分组  
var str = "abcabc ###";
var arr = rule.exec(str);  
console.info(arr[1]);  //abc  

var rule = /^a|bc$/;  //将匹配开始位置的a或结束位置的bc  
var str ="add";  
console.info(rule.test(str));  //true 
var rule = /^(a|bc)$/;//将匹配a或bc  
var str ="bc";  
console.info(rule.test(str));//true

/**
 * 正则表达式是非常强大的,想学习更多正则请前往以下网址:
 * https://www.w3school.com.cn/js/index.asp
 * https://www.runoob.com/regexp/regexp-syntax.html
 */
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值