zoukankan      html  css  js  c++  java
  • js 字符串的replace() 方法和实现replaceAll() 方法

    一、js中字符串的替换使用replace() 方法,但它只替换第一个匹配子串。如下例:

    <script type="text/javascript">
            var sourceString = "我是被替换的字符串,是被替换的哦";
            var replaceString = sourceString.replace("替换", "replace");
            alert(replaceString);  // 我是被replace的字符串,是被替换的哦 
    </script>

    可以看到替换后的replaceString的值为"我是被replace的字符串,是被替换的哦 ",replace(searchValue,replaceValue)方法替换的只是第一个匹配的字符串,那么如何实现替换全部匹配的字符串呢?——可以使用replace(searchRegexp,replaceValue)的正则表达式方式来实现。

    <script type="text/javascript">
            var sourceString = "我是被替换的字符串,是被替换的哦";
            var replaceString = sourceString.replace(/替换/gm, "replace"); //sourceString.replace(new RegExp("替换", "gm"), "replace");
            alert(replaceString);   // 我是被replace的字符串,是被replace的哦
    </script>

    二、添加 Stirng对象的原型方法:实现replaceAll()方法

    <script type="text/javascript">
            // 替换所有
            String.prototype.replaceAll = function (searchString, replaceString, ignoreCase) {
                if (RegExp.prototype.isPrototypeOf(searchString)) {
                    return this.replace(searchString, replaceString);
                } else {
                    return this.replace(new RegExp(searchString, (ignoreCase ? "gmi" : "gm")), replaceString);
                }
            }
    
            var sourceString = "我是被替换的字符串,是被替换的哦,Is Replace or replace?";
            var replaceString = sourceString.replaceAll("替换", "replace");
            //replaceString = sourceString.replaceAll(/替换/gm, "replace");
            //replaceString = sourceString.replaceAll(new RegExp("替换", "gm"), "replace"); 
            //replaceString = sourceString.replaceAll("replace", "替换");  // 我是被替换的字符串,是被替换的哦,Is Replace or 替换? 
            //replaceString = sourceString.replaceAll("replace", "替换", true);  // 我是被替换的字符串,是被替换的哦,Is 替换 or 替换? 
            console.log(replaceString);
            alert(replaceString);   // 我是被replace的字符串,是被replace的哦,Is Replace or replace? 
    </script>
  • 相关阅读:
    google搜索引擎使用方法
    通过Ajax和SpringBoot交互的示例
    利用html sessionStorge 来保存局部页面在刷新后回显,保留
    JS页面刷新保持数据不丢失
    Firefox浏览器中,input输入框输入的内容在刷新网页后为何还在?
    关于form/input 的autocomplete="off"属性
    Java对日期Date类进行加减运算,年份加减,月份加减
    select标签设置只读的方法(下拉框不可选但可传值)
    用Thymeleaf在前台下拉列表取值
    jsp页面动态展示list-使用<select>和<c:forEach>标签
  • 原文地址:https://www.cnblogs.com/lusunqing/p/4080918.html
Copyright © 2011-2022 走看看