为了账号安全,请及时绑定邮箱和手机立即绑定

白话解释下这段js代码,关于replace

白话解释下这段js代码,关于replace

开心每一天1111 2022-02-24 19:15:59
var str = "sdf\n\t1";str = str.replace(/\n|\r|\t/g, function(ch) {switch (ch) {case "\n": return "\\n";case "\r": return "";case "\t": return "\\t";}});=>正则我看的懂,关键是replace的第二个参数,是个匿名function。那个匿名function(ch)参数ch,为什么会是 前面正则的字符(!!主要解释这个匿名函数及其参数!!)function (ch) 这个ch参数是怎么传进来滴。
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

我的理解是:如果str符合/\n|\r|\t/g 这个匹配要求,则进入function
也就是说如果str.match(/\n|\r|\t/g)!=null 就将str.match(/\n|\r|\t/g)传入fuction
所以那个ch=str.match(/\n|\r|\t/g)
然后把替换后的ch再放回去,这个就不是match的功能而是replace的功能了

查看完整回答
反对 回复 2022-02-28
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

ch,或者word都可以……
首先我们来了解下基本的语法:string.replace(regexp, replacement)
regexp :您要执行替换操作的正则表达式,如果传入的是一个字符串,那就会当作普通字符来处理,并且只会执行一次替换操作;如果是正则表达式,并且带有 global (g) 修饰符,则会替换所有出现的目标字符,否则,将只执行一次替换操作。
replacement :您要替换成的字符。
返回值是执行替换操作后的字符串。

下面用几个例子来详细的说明下:
1、String.replace( ) 替换所有出现的目标字符
Code:
var text= "javascript 非常强大 !JAVASCRIPT 是我最喜欢的一门语言 !";
text.replace(/javascript/ig, "JavaScript");
// 返回:JavaScript 非常强大 !JavaScript 是我最喜欢的一门语言 !

2、String.replace( ) 实现调换位置
Code:
var name= "aaaa, bbcc";
name.replace(/(\w+)\s*,\s*(\w+)/, "$2 $1");
// 返回:bbcc aaaa

3、String.replace( ) 实现将所有双引号包含的字符替换成中括号包含的字符
Code:
var text = '"JavaScript" 非常强大!';
text.replace(/"([^"]*)"/g, "[$1]");
// 返回:[JavaScript] 非常强大!

4、String.replace( ) 将所有字符首字母大写
Code:
var text = 'a journey of a thousand miles begins with single step.';
text.replace(/\b\w+\b/g, function(word) {
return word.substring(0,1).toUpperCase( ) +
word.substring(1);
});
// 返回:A Journey Of A Thousand Miles Begins With Single Step.




查看完整回答
反对 回复 2022-02-28
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

var str = "sdf\n\t1";
alert(str);
str = str.replace(/\n|\r|\t/g, function(ch) {
switch (ch) {
case "\n": return "\\n";
case "\r": return "";
case "\t": return "\\t";
}
});
alert(str);

在执行前,执行后分别alert一下就知道什么意思啦
\n\r\t都是转义字符
\n 换行
\r 返回
\t 制表



查看完整回答
反对 回复 2022-02-28
  • 3 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信