深入解析JavaScript中String对象的replace方法及其参数使用技巧

String对象的replace方法

深入解析JavaScript中String对象的replace方法及其参数使用技巧

参数关系( [ reg | string ], [ string | function ] )

第一个参数表示执行匹配的正则表达式,也可以传递字符串

与搜索和匹配不同,replace 方法不会将字符串转换为常规对象,而是匹配字符串文字的文本模式。

第二个参数可以是替换文本或生成替换文本的函数。函数的返回值用作替换文本。

特殊符号$

$1 $2 ...$99:表示匹配正则表达式中第1-99个子表达式的文本

var a = 'javascript';

var b = a.replace(/(java)(script)/,"$2$1");

控制台.log(b); //“脚本java”

$& : 匹配正则表达式的子串

var a = 'javascript';

var b = a.replace(/.*/, "$&$&");

控制台.log(b); //“javasrciptjavasrcipt”

$`(后单引号):匹配子字符串左侧的文本

var a = 'javascript';

var b = a.replace(/script/, "$`");

控制台.log(b); //“javajava”

$'(单引号):匹配子字符串右侧的文本

var a = 'javascript';

var b = a.replace(/java/, "$'");

控制台.log(b); //“脚本脚本”

$$:代表$符号

第二个参数是函数

函数($,$1,$2,……,n,字符串)

第一个参数代表每次匹配的文本

第二个参数表示与该匹配的第一个子表达式匹配的文本。

第三个参数表示该匹配的第二个子表达式所匹配的文本。

…………………………………………

倒数第二个参数表示匹配文本的下标位置。

最后一个参数代表字符串本身

实施例1

var a = '脚本语言 = "javascript"';

var f = function($1){ //$1也可以替换为x等其他形参

返回 $1.slice(0,1).toUpperCase() + $1.slice(1);

};

var b = a.replace(/(\b\w+\b)/g, f);

控制台.log(b);

实施例2

var s = "张三56分,李四74分,王五92分,赵六84分";

var a =s.match(/\d+/g),sum =0;

为(变量我= 0;我

sum += parseFloat(a[i]);

};

var avg = sum / a.length;

函数 f(){

var n = parseFloat(参数[1]);

return n + "points" + " ( " + (( n > avg ) ?( "高于平均分" + ( n - avg ) ) :( "低于平均分" + ( avg - n ) )) + "点)”;

var s1 = s.replace( /(\d+)分/g, f );

控制台.log(s1);

实施例3

var s = '脚本语言=“javaScript”类型=“text/javaScript”';

var f = 函数($_all,$1,$2,$3,n,s){

返回 $1.toUpperCase()+$2+n;

var a = s.replace( /\b(\w)(\w)(\w*)\b/g, f );

控制台.log(a); //脚本语言=“JavaScript”类型=“文本/JavaScript”

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

24阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

27阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

23阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

25阅读