字符串转换为驼峰的方法
var str = 'border-bottom-color';
var strarg = str.replace(/\-[a-z]/g,function(params){
return params.charAt(1).toUpperCase();
})
console.log(strarg)
- charAt(1)也可以用substr(1),substring(1)来替代
- /\-[a-z]/g中g表示全文检索,part表示匹配到的字符
方法二:
var str = 'border-bottom-color';
var aNew = []
aNew = str.split('-')
for(let index =0;index<aNew.length;index++){
if(index != 0){
aNew[index] = aNew[index].substr(0,1).toUpperCase() + aNew[index].substr(1);
}
}
str = aNew.join('')
console.log(str)
js查找字符串中出现字符最多的个数
var str = 'sdjksfssscfssdd'
var maxObj = {key:null,count:null}
var macCou = 0
while(str){
var i=0
var reg = new RegExp(str[0],'g');
var curStr = str[0];
str = str.replace(reg,function(part){
i++;
return '';
})
if(i>macCou){
maxObj.key = curStr;
macCou = maxObj.count = i;
}
}
console.log(maxObj.key,maxObj.count)
方法二:
var str = 'sdjksfssscfssdd'
var obj ={}
var aNew = str.split('')
for(let index = 0;index<aNew.length;index++){
const val = aNew[index];
if(typeof obj[val] !== 'undefined'){
obj[val]++
}else{
obj[val]=1;
}
}
var maxObj = {key:null,count:null};
for(const key in obj){
var curr = obj[key];
if(curr>maxObj.count){
maxObj.count = curr;
maxObj.key = key;
}
}
console.log(maxObj.key,maxObj.count)
去除字符串中连续重复的地方
function removeRepetition(str){
if(str != ''){
var res = str[0];
for(var i=1;i<str.length;i++){
if(str[i]!+str[i-1]){
res+=str[i];
}
}
}else{
res = ''
}
return res;
}
实现千位分隔符:123456789->123,456,789
方法1:
var str='12345678'
var reg = /^([1-9]\d{0,2})((?:\d{3})+)$/
var s = str.replace(reg,function(){
return RegExp.$1+','+RegExp.$2.match(/\d{3}/g);
})
console.log(s)//12,345,678
- 将第一逗号前面的数字作为第一组,后面所有的数字作为第二组,第二组是由多个三位的数字组合而成,整体需要匹配捕获,但是每个三位数不需要匹配捕获,所以加?:
- RegExp.$1获取第一个分组,RegExp.$2获取第二个分组
- match返回匹配到的数据,是数组类型
方法二:
var count = 0;
var strNew = '';
var str = '60123761';
for(let i=str.length;i>=0;i--){
if(count%3 === 0 && count != 0){
strNew+=',';
}
strNew += str.substr(i,1);
count++;
}
strNew = strNew.split('').reverse().join('');
console.log(strNew)
判断字符串是否是对称数
var str='Woow'
var reg = /^([a-z])([a-z])\2\1$/i;
if(reg.test(str)){
console.log('ok')
}
正则验证,表单提交时,输入框中不能为空,有空格去掉空格,手机号必须合法
<form action="" id="form1" method="get">
PhoneNumber: <input type="text" value="please input number .." id="mobi" name="">
<input type="submit" name="">
</form>
var form1 = document.getElementById('form1');
form1.onsubmit = function(){
var mobi = document.getElementById('mobi');
var reg = /^1\d{10}$/;
if(reg.test(mobi.value.replace(/ /g,''))){
console.log('ok');
}else{
console.log('error');
return false;
}
}
用正则分解超链接
var str = '<a href="https://www.taobao.com/">ddd</a><a href="tttps://www.taobao.com/?name=jxd&age=18&tit=web">ddd</a>';
var reg = /<a href=([\"\'])([^'"]+)\1>([^'"]+)<\/a>/g;
var a =[];
while(true){
reg.test(str);
if(reg.lastIndex === 0){
break;
}
a.push({name:RegExp.$3,url:RegExp.$2});
}
for(const n in a){
for(const sttr in a[n])
console.log(a[n][sttr])
}
/*ddd
https://www.taobao.com/
ddd
tttps://www.taobao.com/?name=jxd&age=18&tit=web*/
判断字符串由数字和字母组成
function checkPassWOrd(number){
var re = /^[0-9a-zA-Z]*$/;
if(!re.test(number)){
return false;
}else{
return true;
}
}