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 ...
随机推荐
- STM32—ADC详解
文章目录 一.ADC简介 二.ADC功能框图讲解 1.电压输入范围 2.输入通道 3.转换顺序 4.触发源 5.转换时间 6.数据寄存器 7.中断 8.电压转换 三.初始化结构体 四.单通道电压采集 ...
- Java虚拟机漫漫学习路,我终于悟了
毕业8年,前5年的职业规划是做计算广告,后来感觉计算广告这一行更注重的是业务而非技术,而自己的性格更适合做技术,所以毅然决然的辞职, 全职1年半时间写了2本关于Java编译器与虚拟机的书,今年年初来到 ...
- 将JDK默认编码设置为UTF-8
此博文非原创:参考小兵qwer https://blog.csdn.net/xiaobing_122613/article/details/70209716 只是想留下对自己有用的东西,同时帮助更 ...
- ASP.NET Core端点路由中三种让人困惑的路由函数
早先提及了端点路由app.UseEndpoints, 端点路由强调的是端点和 路由,其核心目的是将 请求落地点与路由寻址方式解耦. 这里面有几个容易混淆的函数 MapControllerRoute M ...
- js函数聚合
//掺杂类实现聚合(有的时候,我们需要某个或多个类里的一些方法函数) //将要被聚合的函数 var JSON = { toJsonString: function () { var output = ...
- 输入npm install 报错node-sass@4.13.0 postinstall:`node scripts/build.js` Failed at the node-sass@4.13.0
这个是因为sass安装时获取源的问题,先修改sass安装的源,再运行npm install就成功了 npm config set sass_binary_site=https://npm.taobao ...
- request库的简单使用
7种基本用法 首先安装requests库 如果你本地只有一个python环境直接运行pip install requests 像我本地装了3个不同的python怎么使你安装在你想要安装的python下 ...
- shiro(二)
public class AuthorizerTest { @Test public void testIsPermitted() { login("classpath:shiro-auth ...
- Java从文件路径中获取文件名的几种方法
举例:String fName =" G:\Java_Source\navigation_tigra_menu\demo1\img\lev1_arrow.gif " 方法一: 1 ...
- 国内Git官网下载windows版本慢的问题,推荐一个国内镜像
话不多说了,给你们镜像地址: https://npm.taobao.org/mirrors/git-for-windows/ 不用谢.点右边打赏个一毛钱,告诉我你来过 !_!