正则表达式的练习

今天,做了几个编程题目,深感正则表达式的强大。

一、检查字符串中是否包含数字。包含则返回true,否则返回false。

 	function containsNumber(str) {                 
               for (var i = 0; i < str.length; i++) { 
                     if (!isNaN(parseInt(str[i]))) { //判断是否为数字
                         return true;                       
                     }
               }
               return false;
        } 

parseInt(string, radix):将字符串解析为数字。radix为基数。默认是十进制数。

                                     如果字符串的第一个字符不能被转换为数字,会返回 NaN。

isNaN():检查某个值是否是非数字值。如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回             false。

使用正则表达式为:

function containsNumber(str) { 			   
 	var reg=/\d/;
        return reg.test(str); 			   
}

二、给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false

 function containsRepeatingLetter(str) {

        return /([a-zA-Z])\1/.test(str);
    }

():代表捕获组,

\1代表对第一个捕获组的引用

获取 url 中的参数 
    1. 指定参数名称,返回该参数的值 或者 空字符串 
    2. 不指定参数名称,返回全部的参数对象 或者 {} 

    3. 如果存在多个同名参数,则返回数组**

扫描二维码关注公众号,回复: 170839 查看本文章
function getUrlParam(sUrl, sKey) {

	      var arr={};
		sUrl.replace(/\??(\w+)=(\w+)$?/g,function (match,p1,p2) {
			if (!arr[p1]) {
				arr[p1]=p2;
			}else{
				p=arr[p1];
				arr[p1]=[].cancat(p,p2);
			}
		});

		if(!sKey){
			return arr;
		}else{
			for(var ele in arr){
				if (ele=sKey) {
					return arr[ele];
				}
			}
			return "";
		}	
	}

   注意:1、repalce函数的第二个参数可以是替换文本,也可以是产生替换文本的函数。函数的参数,match为子捕获                       组,p1,p2,...pn为捕获组的各个项。

             2、 g代表全局属性。意思是说,找到匹配的值之后,继续回溯查找。

             3、 若replace的第二个参数为函数,函数的参数如下

               

四、驼峰命名的转换

function campCase(str) {
		var reg=/-([a-z])/g;
		return str.replace(reg,function (match,p1) {
		      return p1.toUpperCase();
		});
}

注意:1.repalce的返回值为替换后的字符串。

           2..match为匹配子字串。(包括-)

           3.p1为第一个捕获组。


猜你喜欢

转载自blog.csdn.net/qq_33745501/article/details/79704768