前端-正则(九)

字符串转换为驼峰的方法

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;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值