来自 计算机网络 2019-09-08 03:59 的文章
当前位置: 六合联盟网 > 计算机网络 > 正文

用于字符串替换或正则替换

JavaScript replace 方法

概念和用法
replace() 方法用于在字符串中用一些字符替换另一些字符,或交流贰个与正则表明式相称的子串。

replace 方法用于在字符串中用一些字符串替换另一对字符串,恐怕替换符合正则匹配的字符串,并重返替换后的字符串。其语法如下:

语法
stringObject.replace(regexp/substr,replacement)

复制代码 代码如下:

参数 描述
regexp/substr

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

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

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

str_object.replace(reg_exp/str, replacement)

返回值

三个新的字符串,是用 replacement 替换了 regexp 的第一遍相配或富有相配之后获得的。

参数表明:

说明

字符串 stringObject 的 replace() 方法推行的是探寻并替换的操作。它将在stringObject 中研究与 regexp 相相配的子字符串,然后用 replacement 来替换那几个子串。假诺 regexp 具备全局标记 g,那么 replace() 方法将替换全部相称的子串。不然,它只替换第贰个相配子串。

replacement 能够是字符串,也足以是函数。假设它是字符串,那么各种相配都将由字符串替换。可是replacement 中的 $ 字符具有特定的意思。如下表所示,它表明从情势相配获得的字符串将用于替换。

字符 替换文本
$1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
$& 与 regexp 相匹配的子串。
$` 位于匹配子串左侧的文本。
$' 位于匹配子串右侧的文本。
$$ 直接量符号。

专一:ECMAScript v3 分明,replace() 方法的参数 replacement 能够是函数并非字符串。在这种景况下,每一个相称都调用该函数,它回到的字符串将作为替换文本使用。该函数的率先个参数是十分格局的字符串。接下来的参数是与形式中的子表明式相配的字符串,能够有 0 个或七个这么的参数。接下来的参数是一个卡尺头,证明了协作在 stringObject 中出现的岗位。最后三个参数是 stringObject 本身。

越来越多基础实例能够到这里查看://www.jb51.net/w3school/js/jsref_replace.htm

replace() 方法的参数 replacement 能够是函数并非字符串。在这种状态下,每种相称都调用该函数,它回到的字符串将作为替换文本使用。该函数的第贰个参数是突出方式的字符串。接下来的参数 是与情势中的子表达式相配的字符串,能够有 0 个或几个这么的参数。接下来的参数是三个整数,表明了同盟在 stringObject 中冒出的地点。最终二个参数是 stringObject 本人。

下文展现了三种javascript正则表示式的repalce形式,有个别措施大家非常少在别的地方看到,如第三种和第三方中艺术。

复制代码 代码如下:

//上边的例子用来博取url的多少个参数,并回到urlRewrite此前的真实Url
var reg=new RegExp("(");
var url="";

//方式一,最简便易行常用的方式
var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3");
alert(rep);

//情势二 ,选取一定参数的回调函数
var rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3});
alert(rep2);

//形式三,选取非固定参数的回调函数
var rep3=url.replace(reg,function(){var args=arguments; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];});
alert(rep3);

//方法四
//格局四和格局三很周边, 除了归来替换后的字符串外,还足以单独赢得参数

[code]
var bookId;
var chapterId;
function capText()
{
    var args=arguments;
    bookId=args[2];
    chapterId=args[3];
    return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];
}

var rep4=url.replace(reg,capText);
alert(rep4);
alert(bookId);
alert(chapterId);

//除了行使replace方法获得正则表示式的分组外,还足以应用test ,exec方法得到分组,只是花招有所差异而已
var reg2=new RegExp("(");
var m=reg2.exec("");
var s="";
//获取具有的分组
for (i = 0; i < m.length; i++) {
      s = s + m[i] + "n";     
      }
alert(s);

bookId=m[2];
chapterId=m[3];
alert(bookId);
alert(chapterId);

//使用test方法赢得分组
var reg3=new RegExp("(");
reg3.test("");
//获取四个分组
alert(RegExp.$1);
alert(RegExp.$2);
alert(RegExp.$3);

    var str="www.baidu.com";
        //str.format("好","q")       
        str.replace(new RegExp("(\.)(bai)du","g"),function(){           
            for(var i=0;i<arguments.length;i++)
            {
                    document.write(arguments[i]+"<br/>");
            }
            document.write("-------------------------------------------------<br/>");
        });

 几个例证(评释,replace传入正则参数和字符传参数结果差异):

alert("123".replace("1",function(){var un;return un;}));  //弹出undefined23
alert("123".replace(new RegExp("1"),function(){var un;return un;}));  //弹出23

有些实例介绍:

replace()最简便的归根结蒂技术就是差相当的少的字符替换。比如:

[Ctrl+A 全选 注:如需引进外界Js需刷新本事实践]

本人想我们运营后方可看看结果,它只替换了首字母。但万小米上正则表达式结果就不相同了!replace()扶助正则表明式,它能够遵循正则表明式的条条框框相配字符或字符串,然后给予替换!

[Ctrl+A 全选 注:如需引进外界Js需刷新本领推行]

只是结果或许不曾改观,要是你熟谙正则,那那就难不住您。稍加修改就OK了。

复制代码 代码如下:

<script language="javascript">
var strM = "javascript is a good script language";
//在此将字母a全体替换到字母A
alert(strM.replace(/a/g,"A"));
</script>

仍可以那样,看看效果!

复制代码 代码如下:

<script language="javascript">
var strM = "javascript is a good script language";
alert(strM.replace(/(javascript)s*(is)/g,"$1 $2 fun. it $2"));
</script>

  小编那儿举的事例都是很轻易的选用,replace()在此点上与您使用正则表明式的本领成正比。您正则表明式越强,呵呵,那您就能越疯狂的爱上它。
  当然,小编此时推荐replace()的原由并不因为它能与正则表明式合作,而介于它仍是能够与函数进行合营,发挥出庞大的职能。
  先看看轻巧例子:将兼具单词首字母换来大写。

复制代码 代码如下:

<script language="javascript">
var strM = "javascript is a good script language";
function change(word)
{
 return word.indexOf(0).toUpperCase()+word.substring(1);
}
alert(strM.replace(/bw+b/g,change));
</script>

  由上能够,当正则表达式有"g"标记时,代表将管理任何字符串,即函数change的更换将选择于全体相称的靶子。而该函数有四个或愈来愈多参数,具体个数视正则表明式而定。
  有了函数与正则表明式的合营,replace()管理字符串的作用空前壮大起来了!
  最终还比方,将字符串全数单词倒序,用replace()管理是那般轻巧。

复制代码 代码如下:

<script language="javascript">
var strM = "javascript is a good script language";
function change(word)
{
 var result = word.match(/(w)/g);
if ( result )
{
 var str = "";
  for ( var i=result.length-1; i>=0; i-- )
 {
   str += result;
 } return str;
}
else
{
  return "null";
}
}
alert(strM.replace(/b(w)+b/g,change));
</script>

参数 说明
str_object 要操作的字符串(对象)
reg_exp/str 必需。要匹配的正则表达式/要替换的字符串
如果 reg_exp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
replacement 必需。要替换的字符串

您或然感兴趣的稿子:

  • javascript replace()用法详解附实例代码
  • js 页面刷新location.reload和location.replace的区分小结
  • js replace() 文本替换你所不知的
  • javascript中应用replaceAll()函数达成字符替换的方法
  • js正则函数match、exec、test、search、replace、split使用介绍集结
  • js中字符替换函数String.replace()使用才能
  • Js 回车换行管理的艺术及replace方法应用
  • JS、replace利用正则表明式替换SQL全数参数为钦命格式的多寡
  • js replace 与replaceall实例用法详解
  • JS利用正则协作replace替换钦赐字符
  • JS Replace 全体调换字符的用法小结
  • JS使用replace()方法和正则表明式实行字符串的找出与替换实例
  • js使用正则达成ReplaceAll全部交替的办法
  • js使用正则完成ReplaceAll全体轮换的主意
  • 详解JavaScript 中的 replace 方法

字符串替换实例

上面包车型大巴事例演示了 replace 方法的字符串替换实例:

复制代码 代码如下:

<script language="JavaScript">

var str = "www.example.net";
document.write( str.replace("example", "jb51") );

</script>

运转该例子,输出:

复制代码 代码如下:

www.jb51.net

在意:字符串替换只替换第三个符合供给的字串(只替换三遍),纵然要替换字符串中持有符合须求的字串,提议用正则表明式带全局参数 g 的情势,具体见下文例子。

正则表明式字符串替换实例

replace 方法除了支持简单的字符串替换外,也支持正则表达式替换:

复制代码 代码如下:

<script language="JavaScript">

var str = "www.example.net is a example domains site of INNA.";
document.write( str.replace(/example/, "jb51") );

</script>

运维该例子,输出:

复制代码 代码如下:

www.jb51.net is a example domains site of INNA.

当给正则表明式加上全局标识 g 时:

复制代码 代码如下:

<script language="JavaScript">

var str = "www.example.net is a example domains site of INNA.";
document.write( str.replace(/example/g, "jb51") );

</script>

运行该例子,输出:

复制代码 代码如下:

www.jb51.net is a 5idev domains site of INNA.

在意,假若您要不经意大小写,能够增加 i 参数:/example/gi 。

你也许感兴趣的稿子:

  • js replace(a,b)之替换字符串中有着内定字符的秘诀
  • js正则表明式replace替换变量方法
  • js正则查找match()与替换replace()用法实例
  • javascript正则表明式使用replace()替换别的一只手提式有线电话机号的办法
  • js使用正则完成ReplaceAll全体调换的主意
  • js使用正则达成ReplaceAll全体交替的措施
  • JS使用replace()方法和正则表明式实行字符串的搜寻与替换实例
  • JS Replace 全部交换字符的用法小结
  • JS利用正则协作replace替换钦定字符
  • JS、replace利用正则表明式替换SQL全部参数为钦命格式的多寡
  • js中字符替换函数String.replace()使用手艺
  • js replace 全局替换的操作方法

本文由六合联盟网发布于计算机网络,转载请注明出处:用于字符串替换或正则替换

关键词: