1.获取字符串的长度
描述:
如果第二个参数 bUnicode255For1 === true
,则所有字符长度为 1
否则如果字符 Unicode 编码 > 255
则长度为 2
输入例子:
strLength('hello world, 牛客', false)
输出例子:17
function strLength(s, bUnicode255For1)
{
if(bUnicode255For1) {return s.length;}
else{var length = s.length;
for(var i = 0, lng = length; i < lng; i++){
if(s.charCodeAt(i)>255){
length ++;
}
}
return length;}
}
2.邮箱字符串判断
描述:
判断输入是否是正确的邮箱格式
输入: 邮箱字符串
输出: true表示格式正确,false表示错误
实现:
function isAvailableEmail(sEmail) {
var parter = /^[a-z0-9_+.-]+\@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/;
return parter.test(sEmail);
}
这题的关键是理解这个正则表达式,我们拆开来看看:
1.^[a-z0-9_+.-]+
: 这个表示以一个或多个小写字母,数字或_,+,.,-
这几个个字符开头
\@([a-z0-9-]+\.)+
: 这个表示1中的字符连着@,后面再接着一个多个由小写字母,数字,
-
字符和点
.
的组成的字符串。
3.[a-z0-9]{2,4}$
: 这个比较简单,表示以长度为2-4的,由小写字母和数字任意组合组成的字符串结尾。
var
reg=/^([\w\.])+\@(([\w])+\.)+([\w]+)+$/;等价于===
var parter = /^[a-z0-9_+.-]+\@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/;
3.将字符串转换为驼峰格式
css 中经常有类似 background-image 这种通过 - 连接的字符,通过 javascript 设置样式的时候需要将这种样式转换成 backgroundImage 驼峰格式,请完成此转换功能
1. 以 - 为分隔符,将第二个起的非空单词首字母转为大写
2. -webkit-border-image 转换后的结果为 webkitBorderImage
1. 以 - 为分隔符,将第二个起的非空单词首字母转为大写
2. -webkit-border-image 转换后的结果为 webkitBorderImage
示例1
输入 ‘font-Size’ 输出 fontSize
function cssStyle2DomStyle(sName) {
var re = /-(\w)/g;
//如果字符串以 - 开头则将 - 删掉
if(sName[0] == '-') { sName = sName.replace('-', ''); }
//将 “-字母”形式的字符串替换为 “大写字母”的形式
sName = sName.replace(re, function($0, $1){
return $1.toUpperCase();
})
return sName;
}
4.颜色字符串转换
将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff
1. rgb 中每个 , 后面的空格数量不固定
2. 十六进制表达式使用六位小写字母
3. 如果输入不符合 rgb 格式,返回原始输入
1. rgb 中每个 , 后面的空格数量不固定
2. 十六进制表达式使用六位小写字母
3. 如果输入不符合 rgb 格式,返回原始输入
输入 输出
'rgb(255, 255, 255)' #ffffff
function rgb2hex(sRGB) {
var regexp=/rgb\((\d+),\s*(\d+),\s*(\d+)\)/;
var ret=sRGB.match(regexp);
if(!ret){
return sRGB;
}else{
var str='#';
for(var i=1;i<=3;i++){
var m=parseInt(ret[i]);
if(m<=255&&m>=0){
str+=(m<16?'0'+m.toString(16):m.toString(16));
}else{
return sRGB;
}
}
return str;
}
}