css颜色字符串转换, 字符串转化为驼峰形式
*
将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff
1. rgb 中每个 , 后面的空格数量不固定
2. 十六进制表达式使用六位小写字母
3. 如果输入不符合 rgb 格式,返回原始输入
input: 'rgb(255, 255, 255)'
output: #ffffff
function rgb2hex(sRGB) {
function int2hex(n, w) {
var m, s = [], c;
w = w || 4;
while (n>0) {
m = n % 16;
if (10 <= m) {
c = String.fromCharCode(97+m-10);
} else {
c = "" + m;
}
s.unshift(c);
n = Math.floor(n/16);
}
// length to pad '0'
var p = w-s.length;
if (p > 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(/^\-/, '');
}
css颜色字符串转换, 字符串转化为驼峰形式的更多相关文章
- php 把驼峰样式的字符串转换成下划线样式的字符串
1.如何在php中把驼峰样式的字符串转换成下划线样式的字符串.例:输入是FooBar的话,输出则是foo_bar 以下是用正则的方式去完成,既然用到正则,方法肯定就不只一种,我们看下下面的方式 ech ...
- 已知有字符串foo=”get-element-by-id”,写一个function将其转化成驼峰表示法”getElementById”
题目:已知有字符串foo=”get-element-by-id”,写一个function将其转化成驼峰表示法”getElementById”. 代码: <!DOCTYPE html> &l ...
- PHP面试题之驼峰字符串转换成下划线样式例子
自己在看到这个问题的时候,想到的是用ASCII码来处理,没往万能的正则上去想.好吧,下面来看看答案: 答案1: 代码如下 复制代码 $str = 'OpenAPI'; $length = mb_str ...
- JavaScript学习笔记3之 数组 & arguments(参数对象)& 数字和字符串转换 & innerText/innerHTML & 鼠标事件
一.Array数组 1.数组初始化(Array属于对象类型) /*关于数组的初始化*/ //1.创建 Array 对象--方法1: var arr1=[]; arr1[0]='aa';//给数组元素赋 ...
- 字节流、字符串、16进制字符串转换__Java(转)
/** * @Package: * @ClassName:TypeConversion * @Description:字节流.字符串.16进制字符串转换 * @author:xk * @date:Ja ...
- java自带BASE64工具进行图片和字符串转换
java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...
- Java字符串转换
public class StringConvertToInt{ public static void main(String[] args) { String a ="12a34bW()5 ...
- C# 判断字符串是否可以转化为数字
C# 判断字符串是否可以转化为数字 /// <SUMMARY> /// 判断字符串是否可以转化为数字 /// </SUMMARY> /// <PARAM name=&qu ...
- c++实现atoi()和itoa()函数(字符串和整数转化)
(0) c++类型所占的字节和表示范围 c 语言里 类型转换那些事儿(补码 反码) 应届生面试准备之道 最值得学习阅读的10个C语言开源项目代码 一:起因 (1)字符串类型转化为整数型(Integer ...
随机推荐
- Elasticsearch之深入理解
@ 目录 ES应用场景 ES应用场景举例 应用场景思考 ES和其他数据库对比 ES架构 Gateway Lucene 数据处理 发现机制与脚本 Transport REST full API ES中集 ...
- 转载自-阮一峰-测试框架 Mocha 实例教程
测试框架 Mocha 实例教程 作者: 阮一峰 日期: 2015年12月 3日 Mocha(发音"摩卡")诞生于2011年,是现在最流行的JavaScript测试框架之一,在浏 ...
- zookeeper同一台服务器创建伪集群
下载zk wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7 ...
- c# 执行python方法
在C#使用Python脚本文件要注意的的是,首先要将IronPython2.7安装路径中的两个dll文件添加到C#引用中一个是IronPython.dll,另一个是Microsoft.Scriptin ...
- MVVMLight学习笔记(五)---RelayCommand深究
一.概述 有时候,单纯的命令绑定不一定能满足我们的开发需求,比如我们需要在命令绑定的时候传递一个参数,这个时候,我们就需要使用RelayCommand的泛型版本了. RelayCommand的泛型版本 ...
- HttpClient4.3教程 第四章 HTTP认证
HttpClient既支持HTTP标准规范定义的认证模式,又支持一些广泛使用的非标准认证模式,比如NTLM和SPNEGO. 4.1.用户凭证 任何用户认证的过程,都需要一系列的凭证来确定用户的身份.最 ...
- C#多线程---ReaderWriterLock实现线程同步
一.简介 当我们需要对一个共享资源多次读取的时候,用前面Monitor的同步锁就没有必要了.因为同步锁每次只允许一个线程访问共享资源,其他线程都会阻塞. 此时,通过ReaderWriterLock类可 ...
- Ubuntu防火墙:ufw
原始linux的防火墙是iptables,以为过于繁琐,各个发行版几乎都有自己的方案; ubuntu下的防火墙是ufw[ubuntu fireward的缩写],centos的防火墙是fireward ...
- promise链式调用的应用
then在链式调用时,会等前一个then或者函数执行完毕,返回状态,才会执行回调函数. (1)代码顺序执行,第一步调用了函数cook ,cook执行返回了一个promise,promise返回的是成功 ...
- os.read
#-*-coding:utf-8-*-__author__ = "logan.xu"import oscmd_res=os.popen("ls").read() ...