zoukankan      html  css  js  c++  java
  • 关于 js 的replace函数

    参考资料:http://www.cnblogs.com/whitewolf/archive/2013/03/14/2958720.html

    看了破狼大大的这篇文章,感觉对replace也是有了新的认识。

    主要是碰到这么一个编程问题,然后看到别人神奇的replace用法,就到处查了一下了解。

    题目

    获取 url 中的参数

    1. 指定参数名称,返回该参数的值 或者 空字符串
    2. 不指定参数名称,返回全部的参数对象 或者 {}
    3. 如果存在多个同名参数,则返回数组

    见到的写法(自己稍微改了一点点。。

    function getUrlParam(sUrl, sKey) {
    	var result = {};
    	sUrl.replace(/??(w+)=(w+)&?/g, function(a, k, v) {
    		// console.log(a, k, v, b, c, d);
    		if(result[k]){
    			result[k] = [].concat(result[k], v);
    		} else {
    			result[k] = v;
    		}
    	});
        if(!sKey){
            return result; 
        }else{
            return result[sKey] || '';
        }
    }
    

    下面copy参考文章中的一些总结:

    第二个参数为字符串的时候:

    对于正则replace约定了一个特殊标记符$
    1. $i (i:1-99) : 表示从左到右正则子表达式所匹配的文本。
    2. $& : 表示与正则表达式匹配的全文本。
    3. $` (`:切换技能键):表示匹配字符串的左边文本。
    4. $’ (‘:单引号):表示匹配字符串的右边文本。
    5. $$ :表示$转移。

    第二个参数为函数:

    在ECMAScript3推荐使用函数方式,实现于JavaScript1.2.当replace方法执行的时候每次都会调用该函数,返回值作为替换的新值。
    函数参数的规定
    1. 第一个参数为每次匹配的全文本($&)。
    2. 中间参数为子表达式匹配字符串,个数不限.( $i (i:1-99))
    3. 倒数第二个参数为匹配文本字符串的匹配下标位置。
    4. 最后一个参数表示字符串本身。
  • 相关阅读:
    正则表达式分组替换注意
    L2 正则化的直观理解
    git版本控制
    callbacks
    validation_data作用
    pandas 对某一列添加过滤
    py-redis 设置过期时间
    什么情况下要做预算会计
    超过一年的一个营业周期是什么意思?
    无形资产为什么属于非流动资产
  • 原文地址:https://www.cnblogs.com/xfh0192/p/7653104.html
Copyright © 2011-2022 走看看