zoukankan      html  css  js  c++  java
  • 从jQuery.camelCase()学习string.replace()

    功能

    camelCase函数的功能就是将形如background-color转化为驼峰表示法:backgroundColor。
    此函数在jQuery的data函数,以及涉及到css的诸多函数中都有用到。

    jQuery的实现

    //正则匹配
    rdashAlpha = /-([a-z])/ig,
    // camelCase替换字符串时的回调函数
    fcamelCase = function( all, letter ) {
        return letter.toUpperCase();
    },
    ...
    camelCase: function( string ) {
        return string.replace( rdashAlpha, fcamelCase );
    },
    

    这个功能本身并不难,就是调用了String对象的replace方法。但是本着学习的态度还是研究了一下replace方法。
    资料参考:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace

    String.replace()语法

    str.replace(regexp|substr, newSubStr|function[, Non-standard flags]);

    String.replace()参数说明

    regexp:一个用于搜索正则表达式
    substr:一个用于搜素字符串
    newSubStr:一个用于替换的新字符串
    function:一个回调函数,函数的返回值用于替换原匹配的字符串
    flags:非标准,类似于RegExp的i、g、m(忽略大小写、是否全局搜索、匹配多行)

    指定字符串作为替换对象

    在用于替换的字符串中你可以使用以下模式:
    $$ => 插入一个$
    $& => 插入匹配的子串
    $` =>插入匹配的子串之前的所有字符
    $' => 插入匹配的子串之后的所有字符
    $n / $nn => 此模式只有在replace()方法的第一个参数为RegExp,且正则表达式内包含括号时有效。

    指定函数作为替换对象

    典型的replacement函数:function(str,p1,p2,offset,s){}
    参数说明:
    str:匹配的字符串(类似$&)
    p1,p2,...:此模式只有在replace()方法的第一个参数为RegExp,且正则表达式内包含括号时有效。(类似$n / $nn)
    offset:匹配子串的偏移量
    s:用于搜索的字符串

    获取CSS属性的驼峰表示

    String.prototype.camelCase=function(){
    //all为匹配的子串,而letter则为p1,因为[a-z]加入了括号
        return this.replace(/-([a-z])/ig,function( all, letter,offset,s ) {
            return letter.toUpperCase();
        });
    };
    var cssText = 'h2\n{\n border-bottom:1px solid #eee;\n background-color:#bbb;\n}';
    var newstr = cssText.camelCase();
    

    交换匹配字符串的位置

    var re = /(\w+)\s(\w+)/;
    var str = "John Smith";
    var newstr = str.replace(re, "$2, $1");
    
  • 相关阅读:
    duilib框架分析:几个回调(C++11)
    duilib框架分析(一)概述
    图解JVM--(二)垃圾回收
    图解jvm--(一)jvm内存结构
    4 (计算机网络) DHCP与PXE:IP是怎么来的,又是怎么没的?
    3(计算机网络)ifconfig:最熟悉又陌生的命令行
    2 (计算机网络)理解网络协议的工作模式
    1 (计算机网络)我们常用的网络协议有哪些?
    阿里云配置mysql
    深入Spring Boot:那些注入不了的Spring占位符(${}表达式)
  • 原文地址:https://www.cnblogs.com/1000/p/2166618.html
Copyright © 2011-2022 走看看