css颜色字符串转换, 字符串转化为驼峰形式


将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff
1. rgb 中每个 , 后面的空格数量不固定
2. 十六进制表达式使用六位小写字母
3. 如果输入不符合 rgb 格式,返回原始输入

input: ‘rgb(255, 255, 255)‘

output: #ffffff

function rgb2hex(sRGB) {
	var int2hex = function(n, w) {
		var m, s = [], c;
		w = w || 2;
		while (n) {
			m = n % 16;
			if (10 <= m) {
				c = String.fromCharCode(97+m-10);
			} else {
				c = "" + m;
			}
			s.unshift(c);
			n = Math.floor(n/16);
		}
		var p = w-s.length; // length to pad ‘0‘
		while (p--) {
			s.unshift(‘0‘);
		}
		return s.join(‘‘);
	};
	/*
	var trim = function(s) {
		return s.replace(/(^\s*)|(\s*$)/g, "");
	};
	*/
    return sRGB.replace(/^rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)$/,
     function($0, $1, $2, $3) {
    	return ‘#‘ +int2hex($1) + int2hex($2) + int2hex($3);
    });
}

console.log(rgb2hex(‘rgb(255, 255, 255)‘));  // #ffffff
console.log(rgb2hex(‘rgb(90, 103, 111)‘));  // #5a676f
console.log(rgb2hex(‘rgb(0,0,15)‘));   // #00000f

  // 10进制整数 转化为16进制 2位

  // (‘0‘+(+str).toString(16)).slice(-2)

function rgb2hex(sRGB) {
	var int2hex = function(str) {
		return (‘0‘+(+str).toString(16)).slice(-2);
	};

    return sRGB.replace(/^rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)$/,
     function($0, $1, $2, $3) {
    	return ‘#‘ +int2hex($1) + int2hex($2) + int2hex($3);
    });
}

  

* 字符串转化为驼峰形式

css 中经常有类似 background-image 这种通过 - 连接的字符,通过 javascript 设置样式的时候需要将这种样式转换成 backgroundImage 驼峰格式,请完成此转换功能
1. 以 - 为分隔符,将第二个起的非空单词首字母转为大写
2. -webkit-border-image 转换后的结果为 webkitBorderImage

function cssStyle2DomStyle(sName) {
    var ucfirst = function(s, delim) {
        delim = delim || ‘-‘;
        return s.split(delim).map(function(s) {
            var c = s.charCodeAt(0);
            if (65 <= c && c < 65 + 26) {
                return s;
            }
            if (97 <= c && c < 97 + 26) {
                c = c & 0xdf;
            }
            return String.fromCharCode(c) + s.substr(1);
        }).join(‘‘);
    }
    var lowerFirstLetter = function(s) {
        var i = 0,
            c = s.charCodeAt(i);
        while (i < s.length) {
            if (97 <= c && c < 97 + 26) {
                return s;
            }
            if (65 <= c && c < 65 + 26) {
                c = c | 0x20;
                break;
            } else {
                c = s.charCodeAt(++i);
            }
        }
        return String.fromCharCode(c) + s.substr(i+1);
    }
    var s = ucfirst(sName);
    return lowerFirstLetter(s);
}

console.log(cssStyle2DomStyle("-webkit-border-image")); // webkitBorderImage
console.log(cssStyle2DomStyle("font-size")); // fontSize
console.log(cssStyle2DomStyle("--selection")); // selection

  / / RegExp

// 链接:https://www.nowcoder.com/questionTerminal/2ded24e34ec34325a62d42d0c8479bae
// 来源:牛客网

function cssStyle2DomStyle(sName) {
    return sName.replace(/(?!^)\-(\w)(\w+)/g, function(a, b, c){
            return b.toUpperCase() + c.toLowerCase();
        }).replace(/^\-/, ‘‘);
}

  

原文地址:https://www.cnblogs.com/mingzhanghui/p/9251634.html

时间: 2024-08-27 07:10:54

css颜色字符串转换, 字符串转化为驼峰形式的相关文章

byte[]数组与十六进制字符串与字符串的互相转换 ——转载

字符串转换成十六进制字符串方法1: /**      * 字符串转换成十六进制字符串     */      public static String str2HexStr(String str) {          char[] chars = "0123456789ABCDEF".toCharArray();          StringBuilder sb = new StringBuilder("");        byte[] bs = str.ge

算法积累(字符串转换驼峰,判断一个字符串中那个字母出现次数最多,并且出现了几次)

因为算法比较烂,所以想做一下这方面的积累. 尽量能够每天学习一个新算法吧.(不过估计很悬) 好吧,今天第一个是字符串转换驼峰 直接上代码 var str = 'toupper-case'; var arr = str.split('-'); //toupper,case for (var i = 1; i < arr.length; i++) { //把除了第一个数组后面的数组的第一个值设置为大写然后大写字母和去掉第一个字符的剩下的字符进行拼合 arr[i] = arr[i].charAt(0)

驼峰字符串转换成下划线样式

// 驼峰字符串转换成下划线样式 $str = 'openAPI'; echo $str."<BR>"; echo strtolower(preg_replace('/((?<=[a-z])(?=[A-Z]))/', '_', $str)).'<br>';//open_ap 正则表达式补充: ?: 不想被捕获的时候使用 可以提高程序执行速度 $string = 'April 15, 2003'; $pattern = '/(\w+) (\d+), (\d+

将一个字符串转化为驼峰表示法表示

方法很简单,主要考察对字符串中split方法和slice方法的运用 split() 方法用于把一个字符串分割成字符串数组 第一个参数是必需的,可以是字符串或正则表达式,从该参数指定的地方分割 stringObject. 第二个参数是可选的,表示该参数可指定返回的数组的最大长度. slice() 方法可从已有的数组中返回选定的元素,可以用slice来删除字符串中的第一位字符. 代码如下: <!DOCTYPE html> <html lang="en"> <h

PHP面试题之驼峰字符串转换成下划线样式例子

自己在看到这个问题的时候,想到的是用ASCII码来处理,没往万能的正则上去想.好吧,下面来看看答案: 答案1: 代码如下 复制代码 $str = 'OpenAPI'; $length = mb_strlen($str); $new = ''; for($i = 0; $i < $length; $i++){ $num = ord($str[$i]); $pre = ord($str[$i - 1]); $new .= ($i != 0 && ($num >= 65 &&

json字符串转换成json对象

Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 代码如下: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: 代码如下: JSON.parse(jsonstr); //可以将json字符

vc字符串转换处理:(绝对精华,收集所有的例子)

vc字符串转换处理:(绝对精华,收集所有的例子) 1.头文件中要定义宏; #define   UNICODE         #define   _UNICODE     //////////////////// char   buf[128];    memset(buf,0,128);     strcpy(buf,"你好");     WCHAR   pCName[128];     memset(pCName,0,128);     MultiByteToWideChar(CP

字符串转换成整数

题目描述 输入一个由数字组成的字符串,把它转换成整数并输出.例如:输入字符串"123",输出整数123. 给定函数原型int StrToInt(const char *str) ,实现字符串转换成整数的功能,不能使用库函数atoi. 分析与解法 基本思路为:从左至右扫描字符串,把之前得到的数乘以10,然后加上当前字符所表示的数字. 然而,我们需要考虑以下几个问题: 输入为空指针时 数字前面的正负号 非法的字符 整形溢出 前三个问题很容易解决,这里主要考虑整形溢出的问题.一般来说,当发生

转换字符串中汉字为其拼音缩写(C#)

第一种方法 转换字符串中汉字为其拼音缩写(C#) //将指定字符串中的汉字转换为拼音缩写,其中非汉字保留为原字符.    public string GetPinYin(string text)   {    char pinyin;    byte[] array;    System.Text.StringBuilder sb = new System.Text.StringBuilder(text.Length); foreach(char c in text)    {     piny