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 ...
随机推荐
- Linux UDP服务器编程
UDP主要使用sendto()和recvfrom() recvfrom() 函数原型如下: #include <sys/types.h> #include <sys/socket.h ...
- Qt Model/View(模型/视图)结构(无师自通)
Model/View(模型/视图)结构是 Qt 中用界面组件显示与编辑数据的一种结构,视图(View)是显示和编辑数据的界面组件,模型(Model)是视图与原始数据之间的接口. GUI 应用程序的一个 ...
- java String数组城市
String[] citys = {"北京","天津","河北","山西","内蒙古"," ...
- 06.SpringMVC之参数绑定
默认支持的参数类型一 HttpServletRequest .HttpServletResponse .HttpSession.java.security.Principal.Locale .Inpu ...
- hdu1002 大数相加问题
这个题对于 几个月前的我简直是噩梦 好在磕磕绊绊终于写出来了 由于自己的问题 还被巨巨嘲讽了 1 1.#include<stdio.h> 2 2.#include<string. ...
- JAVA中的clone方法剖析
原文出自:http://blog.csdn.net/shootyou/article/details/3945221 java中也有这么一个概念,它可以让我们很方便的"制造"出一个 ...
- playwright-python 元素定位、frame处理(一)
浏览器.Browser contexts.frame Playwright 可以同时启动多个浏览器(chromium.Firefox.webkit),每个浏览器可以启动多个page(在Playwrig ...
- VPS系统后台性能优化实战
作者: 刘用, 现任新东方APP团队高级软件工程师 2019年开始,新东方APP团队启动了长达半年以上的稳定性建设工作,为什么稳定性如此重要?因为随着每年30%以上的高速增长,现有的后端服务完全扛不住 ...
- 10个最酷的Linux单行命令
下面是来自 Commandlinefu 网站由用户投票决出的 10 个最酷的 Linux 单行命令,希望对你有用. sudo !! 以 root 帐户执行上一条命令. python -m Simpl ...
- AndroidJetpack数据处理之数据库Room和懒加载Paging
数据库工具:Room Room结构 导入依赖 app的build.gradle中开启kapt: apply plugin: 'kotlin-kapt' 并导入以下依赖: def room_versio ...