js处理字符串小结

工作中经常会对字符串进行处理,因为存在很多类型的原因,比如空格,可以是中英文空格,也能是HTML的&nbsp(看起来也是空格,但是看起来同样的字段,如果空格是&nbsp的话,在数据库是查不到数据的),所以用得非常多的一个方法就是replace()方法,接下来就对这个方法进行一个小结。

str.replace(str1,str2)

str1是str中想要替换的字符串,str2是替换str1的字符串。

 

常用的情况比如:

1.去除字符串中的空格

str.replace(" ","")

2.去掉字符串中某个特定字符

str.replace(/特定字符/,"")     //如果想要替换整个字符串中的该特定字符,就在正则后面加g,str.replace(/特定字符/g,"") 

3.去掉字符串中HTML占位符&nbsp;和</br>

var htm1 = s.replace(/&nbsp;/ig,'');      //&nbsp;

var htm2 = editorTwo.html().replace(/(^\s*)|(\s*$)/g, "");       //</br>

4.去掉字符串中所有的空格,包括最上面我说过的看起来是空格,但是是&nbsp,但是用户又看不到&nbsp的字符串

str.replace(/\s|\xA0/g,"");      //亲测是真的好用,想了很多方法解决那个实际上是&nbsp看起来是空格的字符串,这个正则好用

在网上看到几个非常好的例子,在这里引用一下

字符串:const str='abc1314520def';
-------------------------------------------------------------------------------------------------------
str.replace(/\D/g,'');/*\D非数字,g全局匹配,每个地方都匹配一次*/
结果:
'1314520'
------------------------------------------------------------------------------------------------------
str.replace('abc','');/*直接用字符串匹配*/
结果:
'1314520def
-------------------------------------------------------------------------------------------------------
str.replace(/\D/g,function(rs){return rs.toUpperCase()})
结果:
'ABC1314520DEF'
/*第二个参数可传入函数,会对每个匹配到的字符串'rs'做一次处理,然后你可以将结果return 出来*/
-------------------------------------------------------------------------------------------------------
(还没有看懂的用法)进阶用法:将网址查询的search部分转化为键值对(就是url问号后面的东西)
function parseURL(url=window.location.href){/*es6语法直接设置默认值*/
  const search = url.substr(url.indexOf('?')+1);
  const obj={};
  search.replace(/([^&=]+)=([^&=]*)/g,function(rs,$1,$2){

    obj[decodeURIComponent($1)]=decodeURIComponent($2)

  })
  return obj
}

$1——$99就是匹配第1到第99个子表达式的文本,表达式1:'([^&=]+)',表达式2:'([^&=]*)'等等*/
/*这里我们没有用到rs 只是为了占位而已,因为第一个参数默认为rs*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值