精华内容
下载资源
问答
  • JS字符串 替换所有匹配字符串

    千次阅读 2018-10-25 15:19:32
    var aa = 'ab,cd,ef,cwa' var bb = aa.replace(/\,c/g, '--') ...这里是替换所有的“,c”,如果只是想替换掉第一个匹配项,代码如下: var aa = 'ab,cd,ef,cwa' var bb = aa.replace(',c', '--') ...
        var aa = 'ab,cd,ef,cwa'
        var bb = aa.replace(/\,c/g, '--')
        console.log('bb:' + bb)

    这里是替换所有的“,c”,如果只是想替换掉第一个匹配项,代码如下:

        var aa = 'ab,cd,ef,cwa'
        var bb = aa.replace(',c', '--')
        console.log('bb:' + bb)

     

    展开全文
  • replace 方法用于在字符串中用一些字符串替换另一些字符串,或者替换符合正则匹配的字符串,并返回替换后的字符串。其语法如下: 代码如下: str_object.replace(reg_exp/str, replacement) 参数说明: 参数 说明...
  • replace()方法的第二个参数可以使用函数,当匹配时会调用该函数,函数的返回值将作为替换文本使用,同时函数可以接收以$为前缀的...(美元符号+连字符)与正则表达式相匹配的子字符串$’(美元符号+切换技能键)位于匹...

    replace() 方法的第二个参数可以使用函数,当匹配时会调用该函数,函数的返回值将作为替换文本使用,同时函数可以接收以$为前缀的特殊字符,用来引用匹配文本的相关信息。

    replace() 方法第二个参数中特殊字符

    约定字符串

    说明

    $1、$2、...、$99

    与正则表达式中的第 1~99 个子表达式相匹配的文本

    $&(美元符号+连字符)

    与正则表达式相匹配的子字符串

    $’(美元符号+切换技能键)

    位于匹配子字符串左侧的文本

    $'(美元符号+单引号)

    位于匹配字符串右侧的文本

    $$

    表示 $ 字符串

    示例1

    下面代码把字符串中每个单词转换为首字母大写形式显示。

    var s = 'javascript is script , is not java.'; //定义字符串

    //定义替换文本函数,参数为第一个子表达式匹配文本

    var f = function ($1) {

    //把匹配文本的首字母转换为大写

    return $1.substring(0,1).toUpperCase() + $1.substring(1).toLowerCase();}

    var a = s.replace(/(\b\w+\b)/g, f); //匹配文本并进行替换

    console.log(a); //返回字符串“JavaScript Is Script , Is Not Java.”

    在上面示例中替换函数的参数为特殊字符“$1”,它表示正则表达式 /(\b\w+\b)/ 中小括号匹配的文本,然后在函数结构内对这个匹配文本进行处理,截取其首字母并转换为大写形式,余下字符全为小写,然后返回新处理的字符串。replace() 方法是在原文本中使用这个返回的新字符串替换掉每次匹配的子字符串。

    示例2

    对于上面的示例还可以进一步延伸,使用小括号来获取更多匹配信息。例如,直接利用小括号传递单词的首字母,然后进行大小写转换处理,处理结果都是一样的。

    var s = 'javascript is script , is not java.'; //定义字符串

    var f = function ($1,$2,$3) { //定义替换文本函数,请注意参数的变化

    return $2.toUpperCase() + $3;

    }

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

    console.log(a);

    在函数 f() 中,第一个参数表示每次匹配的文本,第二个参数表示第一个小括号的子表达式所匹配的文本,即单词的首字母,第二个参数表示第二个小括号的子表达式所匹配的文本。

    replace() 方法的第二个参数是一个函数,replace() 方法会给它传递多个实参,这些实参都包含一定的意思,具体说明如下。

    第一个参数表示与匹配模式相匹配的文本,如上面示例中每次匹配的单词字符串。

    其后的参数是与匹配模式中子表达式相匹配的字符串,参数个数不限,根据子表达式数而定。

    后面的参数是一个整数,表示匹配文本在字符串中的下标位置。

    最后一个参数表示字符串自身。

    示例3

    把上面示例中替换文本函数改为如下形式。

    var f = function() {

    return arguments[1].toUpperCase() + arguments[2];

    }

    也就是说,如果不为函数传递形参,直接调用函数的 arguments 属性同样能够读取到正则表达式中相关匹配文本的信息。其中:

    arguments[0]:表示每次匹配的文本,即单词。

    arguments[1]:表示第一个子表达式匹配的文本,即单词的首个字母。

    arguments[2]:表示第二个子表达式匹配的文本,即单词的余下字母。

    arguments[3]:表示匹配文本的下标位置,如第一个匹配单词“javascript”的下标位置就是0,以此类推。

    arguments[4]:表示要执行匹配的字符串,这里表示“javascript is script , is not java.”。

    示例4

    下面代码利用函数的 arguments 对象主动获取 replace() 方法的第一个参数中正则表达式所匹配的详细信息。

    var s = 'javascript is script , is not java.'; //定义字符串

    var f = function () {

    for (var i = 0; i < arguments.length; i++) {

    console.log("第" + (i + 1) + "个参数的值:"+ arguments[i]);

    }

    console.log("-----------------------------");

    }

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

    在函数结构体中,使用 for 循环结构遍历 arguments 属性时,发现每次匹配单词时,都会弹出 5 次提示信息,分别显示上面所列的匹配文本信息。其中,arguments[1]、arguments[2] 会根据每次匹配文本的不同,分别显示当前匹配文本中子表达式匹配的信息,arguments[3] 显示当前匹配单词的下标位置。而 arguments[0] 总是显示每次匹配的单词,arguments[4] 总是显示被操作的字符串。

    示例5

    下面代码设计从服务器端读取学生成绩(JSON格式),然后使用 for 语句把所有数据转换为字符串。再来练习自动提取字符串中的分数,并汇总、算出平均分。最后,利用 replace() 方法提取每个分值,与平均分进行比较以决定替换文本的具体信息。

    var scope = {

    "张三" : 56,

    "李四" : 76,

    "王五" : 87,

    "赵六" : 98

    }, _scope = "";

    for (var id in scope) { //把JSON数据转换为字符串

    _scope += id + scope[id];

    }

    var a = _scope.match(/\d+/g), sum = 0; //匹配出所有分值,输出位数组

    for (var i = 0; i

    sum += parseFloat(a[i]); //把元素值转换为数值后递加

    };

    var avg = sum / a.length; //求平均分

    function f() {

    var n = parseFloat(arguments[1]); //把匹配的分数转换为数值,第一个子表达式

    return ":" + n + "分" + "(" + ((n > avg) ? ("超出平均分" + (n - avg)) :

    ("低于平均分" + (avg - n))) + "分)
    "; //设计替换文本的内容

    }

    var s1 = _scope.replace(/(\b\w+\b)/g, f); //执行匹配、替换操作

    document.write(s1);

    运行结果如下:

    54ff52d1ad1c684f268bdf4f77243107.gif

    遍历数组时不能使用 for/in 语句因为数组中还存储有其他相关的匹配文本信息。应该使用 for 结构来实现。由于截取的数字都是字符串类型,应该把它们都转换为数值类型,再把数字连接在一起,或者按字母顺序进行比较等。

    展开全文
  • JS字符串替换所有匹配字符

    千次阅读 2014-11-03 12:47:32
    //替换转义字符 String.prototype.replaceAll = function(oldstring,newstring){ return this.replace(new RegExp(oldstring,"gm"),newstring); }

      最近做项目的时候遇到字符串批量替换,在JS提供的系统函数里面没有找到相应的函数,只找到了一个替换单一字符串的replaceall,然后自己写了个函数来实现批量替换字符串的功能,与大家分享,高手请绕道,菜菜们共勉!


    //替换转义字符
    String.prototype.replaceAll  = function(oldstring,newstring){    
      return this.replace(new RegExp(oldstring,"gm"),newstring);    
    } 

    使用方法:

    怎样将hessoworld里面的s全部替换为l那?

    1、复制此函数到JS代码片

    2、string str = 'hessoworld';

                     str = str.replaceAll("s","l");

    这样变量str里面的两个s都会被l替换,成为了helloworld

    下面截图实例下二次封装此方法解决部分字符转义的问题:


    展开全文
  • 字符串替换 使用字符串的replace()方法可以实现字符串替换操作。该方法包含两个参数: 第一个: 表示执行匹配的正则表达式,也可以传递字符串 第二个: 表示准备代替匹配的子字符串 var s = "index.html"; var ...

    字符串替换

    使用字符串的replace()方法可以实现字符串替换操作。该方法包含两个参数:
    第一个: 表示执行匹配的正则表达式,也可以传递字符串
    第二个: 表示准备代替匹配的子字符串

    var s = "index.html";
    var b = s.replace("html", "htm");
    

    replace()方法同时执行查找和替换两个操作。该方法将在字符串中查找与正则表达式相匹配的子字符串,然后调用第二个参数值或替换这些子字符串。
    如果正则表达式具有全局性质,那么将替换所有匹配子字符串,否则,只替换第1个匹配子字符串。

    在replace()方法中约定了一个特殊的字符“$”,如果这个美元符号附加了一个序号,就表示引用正则表达式中匹配的子表达式存储的字符串。
    示例:

    var s = "javascript";
    var b = s.replace(/(java)(script)/, "$2-$1");
    document.write(b);	//"script-java"
    

    在上面的代码中,正则表达式/(java)(script)/中包含两对小括号,按顺序排列,其中第一对小括号表示第一个子表达式,第二对小括号表示第二个子表达式,在replace()方法的参数中可以分别使用字符串 “$1” 和 “$2” 来表示对它们匹配文本的引用,当然它们不是标识符,仅是一个标记,所以不可以作为变量参与计算。

    美元符号与其他特殊字符组合的含义:

    • $1、$2、…、$99:
      与正则表达式中的第1~99个子表达式相匹配的文本
    • $&(美元符号+连字符):
      与正则表达式相匹配的子字符串
    • $`(美元符号+切换技能键):
      位于匹配子字符串左侧的文本
    • $’(美元符号+单引号):
      位于匹配子字符串右侧的文本
    • $$:
      表示 $ 符号

    由于字符串“$&”在replace()方法中被约定为正则表达式所匹配的文本,因此利用它可以重复引用匹配的文本,从而实现字符串重复显示效果。其中" /.*/ "表似乎完全匹配字符串

    var s = "javascript";
    var b = s.replace(/.*/, "$&$&");//"javascriptjavascript"
    

    匹配左侧文本:字符"$&“代表匹配字符串“script”,字符” $ “代表匹配文本左侧文本"java”

    var s = "javascript";
    var b = s.replace(/script/, "$& != $`" );//"javascript != java
    

    匹配右侧文本:其中字符"$&"代表匹配字符串“java”,字符“ $ ”代表匹配文本右侧文本“script”。然后用“ $& $’ is”所代表的字符串“Javascript is” 替换原字符串中的“java”子字符串,即组成一个新的字符串“javascript is script”。

    var s = "javascript";
    var b = s.replace(/java/, "$&$' is ");//"javascript is script"
    

    函数作为replace()的参数

    在ECMAScript3中明确规定,replace()方法的第二个参数建议使用函数,而不是字符串(当然字符串也可以用,没毛病),JavaScript1.2实现了对这个特性的支持。

    这样当replace()方法执行匹配时,每次都会调用该函数,函数的返回值将作为替换文本执行匹配操作,同时函数可以接收以 $ 为前缀的特殊字符组合,用来对匹配文本的相关信息进行引用。

    var s = 'script language = "javascript" type= " text / javascript"';
    var f = function($1){
    	return $1.substring(0, 1).toUpperCase() + $1.substring(1);
    }
    var a = s.replace(/(\b\w+\b)/g, f);
    alert(a);
    

    在这里插入图片描述
    函数f()的参数$1表示正则表达式/(\b\w+\b)/g每次匹配的文本。然后再函数体内对这个匹配文本进行处理,截取其首字母并转换为大写形式,之后返回新处理的字符串。replace()方法能够在原文本中使用这个返回的新字符串替换每次匹配的子字符串。

    对于上面的例子,可以使用小括号来获取更多匹配文本的信息。
    例如:直接利用小括号传递单词的首字母,然后进行大小写转换处理。

    var s = 'script language = "javascript" type= " text / javascript"';
    var f = function($1, $2, $3){
    	return $2.toUpperCase() + 43}
    var a = s.replace(/\b(\w)(\w*)\b/g, f);//Script Language = "Javascript" Type = " Text /Javascript"
    

    在函数f()中,第一个参数表示每次匹配的文本,第二个参数表示第一个小括号的子表达式所匹配的文本,即单词的首字母,第二个参数表示第二个小括号的子表达式所匹配的文本。

    实际上,replace()方法的第二个参数的函数的参数是含蓄的,即使不传递任何形参,replace()方法依然会向它传递多个实参,这些实参都包含一定的意思,具体如下:

    • 第一个参数表示与匹配模式相匹配的文本,如上面示例中每次匹配的单词字符串
    • 其后的参数是与匹配模式中子表达式相匹配的字符串,参数个数不限,根据子表达式数而定
    • 后面的参数是一个整数,表示匹配文本在字符串中的下表位置。
    • 最后一个参数表示字符串自身。

    可以将上例修改为如下形式:

    var f = function(){
    	return arguments[1].toUpperCase(0 + arguments[2];
    }
    

    如果不为函数传递形参,直接调用函数的arguments属性,同样能偶读取到正则表达式中相关匹配文本的信息你。

    • arguments[0]表示每次匹配的单词
    • arguments[1]表示第一个子表达式匹配的文本,即单词的首个字母
    • arguments[2]表示第二个子表达式匹配的文本,即单词的余下字母
    • arguments[3]表示匹配文本的下标位置,如第一个匹配单词“script”的下标位置就是0,依次类推
    • arguments[4]表示要执行匹配的字符串,这里表示“script language = “javascript” type= ” text /javascript""
    var s = 'script language = "javascript" type= " text / javascript"';
    var f = function(){
    	for(var i = 0; i < arguments.length; i++){
    		alert("第" + (i + 1) + "个参数的值:" + arguments[i]);
    	}
    }
    var a = s.replace(/\b(\w)\b/g/, f);
    

    在函数体中,使用for循环遍历arguments属性,每次匹配单词时,都会弹出5次提示信息,分别显示上面所列的匹配文本信息。其中,arguments[1]、arguments[2]会根据每次匹配文本不同,分别显示当前匹配文本中子表达式匹配的信息,arguments[3]显示当前匹配单词的下标位置。而arguments[0]总是显示每次匹配的单词,arguments[4]总是显示被操作的字符串。

    例子:自动提取字符串中的分数,汇总后计算平均分

    var s = "张三56分,李四74分,王五92分,赵六84分";
    var a = s.match(/\d+/g), sum = 0;
    for(var i = 0; i < a.length; i++){
    	sum += parseFloat(a[i]);
    };
    var avg = sum / a.length;
    function f(){
    	var n = parseFloat(arguments[1]);
    	return n + "分" + "(" + ((n > avg) ? ("超出平均分" + (n - avg)) : ("低于平均分" + (avg - n))) + "分)";
    }
    var s1 = s.replace(/(\d+)分/g, f);document.write(s1);
    

    在这里插入图片描述

    在上面的示例中,遍历数组时不能够使用for in语句,因为这个数组中还存储着其他相关的匹配文本信息。应该使用for语句来实现。由于截取的数字都是字符串类型,应把它们都转换为数值类型,否则会被误解,例如把数字连接在一起,或者按字母顺序进行比较等。

    展开全文
  • 主要介绍了js replace替换所有匹配字符串,需要的朋友可以参考下
  • JS 字符串替换函数-replace前言基本说明定义与语法返回值说明拓展说明1java中的字符替换操作JS实现全替换的效果拓展说明2replacement 是字符串时replacement 是函数时附注 前言 关于JS中replace函数的说明在一些文章...
  • 正则匹配字符串有则替换无则添加 一.首先确定我们的字符串文本  例:  有一个网上商城项目在书本的详细描述中有这样一段话:  "这是一本某某写Java书共1000章.....【 书本编号:107 】" 注意:这段...
  • JavaScript字符串替换

    2019-11-02 10:55:10
    JavaScript字符串替换 replace() 方法的第二个参数可以使用函数,当匹配时会调用该函数,函数的返回值将作为替换文本使用,同时函数可以接收以$为前缀的特殊字符,用来引用匹配文本的相关信息。 下面代码把字符串中...
  • js字符串中指定字符全局替换

    万次阅读 2018-05-23 00:21:36
    JavaScript 中的 replace() 方法用于将字符串或其中的子字符串替换为指定字符,或替换一个与正则表达式匹配的子串。该方法不会改变原始字符串。 语法 stringObject.replace(regexp/substr, replacement) 它将在 ...
  • 今天在写JavaScript替换字符串时,使用str.replace("a","b")方法替换发现只会替换第一个成功匹配的字符a 而使用如果想要替换全部指定字符时,需要使用str.replace(/\a/g,"b"),这里g为全局标志,可以将全部的a替换成b ....
  • javascript替换字符串JavaScript中可以用string的replace方法替换字符串,如果是普通替换的话,只能替换第一个,要想全部替换,需要用正则表达式。下面代码可以看出两者差异: [code="html"] ...
  • 定义和用法replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。语法stringObject.replace(regexp/substr,replacement)参数 描述regexp/substr 必需。规定子字符串或要替换的...
  • js字符串替换的方法

    2019-09-21 11:26:24
    php中有对一个字符串中的指定字符进行替换的方法,在web前端 javascript 脚本中也有字符串替换的方法,而且还非常的简单。接下来我们就说一说,javascrpt 中对字符串进行替换的方法。 JavaScript replace() 方法 ...
  • 数据结构——替换所有匹配字符串

    千次阅读 2017-09-24 20:24:06
    请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 JS:replace函数 function replaceSpace(str) { str=str.replace(/\ /g,"%...
  • js字符串替换

    2018-07-12 09:02:19
    1、替换字符串匹配的第一个字符 var str = 'abcadeacf'; var str1 = str.replace('a', 'o'); alert(str1); // 打印结果: obcadeacf 2、替换字符串匹配的全部字符 var str2 = str.replace(/a/g, 'o'); ...
  • js字符串替换

    万次阅读 2019-02-12 10:42:36
    js字符串替换js字符串全部替换可以用以下方法: 两种区别:正则&amp;常规 str.replace("需要替换字符串","新字符串")  str.replace(/需要替换字符串/g,"新字符串&...
  • 之前竟然一直没发现,以为前端的replace和后端的replace方法作用相同,都是替换字符串中所有指定字符,其实不然的。 replace 替换一个 let str = "2021-03-19"; console.log(str.replace('-', '/')); 输出结果 ...
  • replace只能替换字符串的第一个匹配的 var str="abcdabcd"; var res=str.replace("a","p"); console.log(res) // pbcdabcd java是没有replaceAll方法的,如果想要替换所有匹配的子串,有下面几种方法 第一种:用...
  • js字符串替换replace()

    2019-04-18 10:37:07
    js字符串替换使用函数replace()生成的是一个新的字符串,切记是生成一个新的字符串! 先看来自w3cschool的解释: 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式...
  • JS替换字符串时。只能替换字符串中第一个匹配对象,有时候需要替换全部的字符,下文是具体的实现方法,大家可以参考下
  • js实现字符串替换replaceAll的方法

    千次阅读 2018-04-29 11:06:39
    JS 字符串替换操作有replace() 方法。但是这个方法有些问题,就是只能替换目标字符串中第一个匹配的字符串。 如下例:var str = "wordwordwordword"; var strNew = str.replace("word","Excel"); alert(strNew); ...
  • JS字符串替换函数全部替换方法 JS 正则表达式如何使用变量  2012-12-17 09:32:39| 分类: --JavaScript | 标签: |字号大中小 订阅 JS字符串替换函数:Replace(“字符串1″, “字符串2″), 1....
  • javascript字符串替换所有要替换字符

    万次阅读 2008-11-21 12:39:00
    javascript字符串替换所有要替换字符javascript替换函数使用正则表达式//将字母i全部替换成5var txt = "sjfisjfisdjfijsidfjioalfjewofjjgs";alert(txt .replace(/i/g,"5"));//只将第一个字母i替换成5var txt = ...
  • 字符串替换

    2018-11-05 08:52:00
    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法 stringObject.replace(regexp/substr,replacement)参数 描述regexp/substr 必需。规定子字符串或要替换的模式的...
  • //index.js wx.request({ url: url + 'me/supply', header: header, success: function (res) { var str = res.data; for(var i=0;i<str.length;i++){ str[i].replace("/\d{1,}/g","*"); //全局匹配数....
  • js字符串替换str.replace()大全

    万次阅读 2018-09-11 17:57:30
    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法 stringObject.replace(regexp/substr,replacement)参数 描述  regexp/substr 必需。规定子字符串或要替换的...
  • Angular 字符串替换

    千次阅读 2019-10-30 14:05:05
    <span *ngIf="!item.filterWordsPass">...-- matchWords 关键字数组, content 字符串 (页面)--> <i [innerHTML]="keyWordManage(item.matchWords,item.comment.content)"></i> </span...
  • js字符串替换

    2020-06-08 09:53:48
    // 只替换第一个匹配 var str1 = " aa bb aa vv aa"; var str1Replace = str1.replace("aa","nn"); // 替换所有 var strdd = "#SPE# aa #SPE# ssddfsd #SPE#"; var sff = strdd.replace(new RegExp("#SPE#","gm")...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,773
精华内容 29,509
关键字:

匹配字符串替换js