正则题
1.短横线命名转换成驼峰命名
var s1 = “get-element-by-id”; 给定这样一个连字符串,写一个 function 转换为驼峰命名法形式的字符串 getElementById
解析:
var s1 = "get-element-by-id";
const toUpperCase = (s) =>
s.replace(/-[a-z]/g, (x) => x.slice(1).toUpperCase());
console.log(toUpperCase(s1));2、正则题:实现正则获取 url params 对象
function parseQuery(url) {
var queryObj={};
var reg=/[?&]([^=&]+)=([^&]*)/g;
var querys=url.match(reg);
console.log(querys);
if(querys){
for(var i in querys){
var query=querys[i].split('=');
var key=query[0].substr(1),
value=query[1];
queryObj[key]
? queryObj[key]=[].concat(queryObj[key],value)
: queryObj[key]=value;
}
}
return queryObj;
}
// [xyz] 一个字符集合。匹配方括号中的任意字符,[abcd] 和[a-d]是一样的
// [^xyz] 一个反向字符集。也就是说, 它匹配任何没有包含在方括号中的字符。
// + 匹配 1 次或多次
// \* 匹配 0 次或多次
var url='http:www.baidu.com/index?=name=username&age=27&pwd=zbc|123@&likes=lol&likes=beautifull girl&$id=main#flag=66';
console.log(parseQuery(url));3、使用正则获取 URL 中参数值(QueryString)
4、实现正则切分千分位(10000 ⇒ 10,000)
var numberStr = "10000000";
console.log(numberStr.replace(/(?=([0-9]{3})+$)/g, "$&,"));5、匹配邮箱
function parseQuery(url) {
let reg = /^[\w]+@[\w-]+(\.[\w-]+)$/g;
return url.match(reg);
}
console.log(parseQuery(`6xxxxxxx9_chen@qq.com`));