JS的replace字符串替换详解

定义

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

语法

stringObject.replace(regexp/substr,replacement)


参数描述
regexp/substr

必需。规定子字符串或要替换的模式的 RegExp 对象。

请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

replacement必需。一个字符串值。规定了替换文本或生成替换文本的函数。


实例

1. 将"www.ccued.com" 中的 ccued 换成 lenton

'www.ccued.com'.replace('ccued','lenton') //"www.lenton.com"


2. 将"www.ccued.com"中的所有"c"换成 a

'www.ccued.com'.replace(/c/g,'a');   //"www.aaued.aom"


3.将"www.ccued.com"中的  w  换成 W,c换成C ,第二个参数为回调函数,将返回值做为替换内容

'www.ccued.com'.replace(/w|c/g,function(i){ 
	return i.toLocaleUpperCase();
  });
  //"WWW.CCued.Com"


4.将"1,3,5,7"转为"1个人,3个人,5个人,7个人"。 每个( )为一组,$1,$2,$3...依次对应代表匹配的内容

'1,3,5,7'.replace(/(\d)/g,'$1个人');  //"1个人,3个人,5个人,7个人"


5.按"yyyy" "mm" "dd"加分隔符格式化当前时间,实用进阶玩法

function fDate(fs){
	fs = fs || 'yyyy-mm-dd';
	let d = new Date();
	let dateObj = {
			'yyyy':d.getFullYear(),
			'mm':d.getMonth()+1,
			'dd':d.getDate()
		};
	return fs.replace(/yyyy|mm|dd/g,(item)=>{
		return dateObj[item];
	});
}
fDate();  //"2018-10-29"
fDate('yyyy/mm/dd');  //"2018/10/29"


2018-10-19 12:08:37 2343 0

参与讨论

选择你的头像