源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JS的replace方法

  • 时间:2022-09-01 07:38 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JS的replace方法
定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法 stringObject.replace(regexp/substr,replacement)
参数 描述
regexp/substr

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

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

[h2]返回值[/h2] 一个新的字符串,是用 [i]replacement[/i] 替换了 regexp 的第一次匹配或所有匹配之后得到的。 [h2]说明[/h2] 字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 [i]replacement[/i] 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。 [i]replacement[/i] 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。
字符 替换文本
$1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
$& 与 regexp 相匹配的子串。
$` 位于匹配子串左侧的文本。
$' 位于匹配子串右侧的文本。
$$ 直接量符号。
注意:ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。 更多基础实例可以到这里查看:[url=http://www.1sucai.cn/w3school/js/jsref_replace.htm]http://www.1sucai.cn/w3school/js/jsref_replace.htm[/url] replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。 下文展示了几种javascript正则表示式的repalce方式,有些方式我们很少在别的地方看到,如第二种和第三方中方法。
[url=http://www.1sucai.cn/article/23421.htm]如需引入外部Js需刷新才能执行[/url]]
我想大家运行后可以看到结果,它只替换了首字母。但如果加上正则表达式结果就不一样了!replace()支持正则表达式,它可以按照正则表达式的规则匹配字符或字符串,然后给予替换!
[Ctrl+A 全选 注:[url=http://www.1sucai.cn/article/23421.htm]如需引入外部Js需刷新才能执行[/url]]
但是结果还是没有更改,如果您熟悉正则,那这就难不住您。稍加修改就OK了。
[u]复制代码[/u] 代码如下:
<script language="javascript"> var strM = "javascript is a good script language"; //在此将字母a全部替换成字母A alert(strM.replace(/a/g,"A")); </script>
还可以这样,看看效果!
[u]复制代码[/u] 代码如下:
<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()的原因并不因为它能与正则表达式合作,而在于它还能与函数进行合作,发挥出强大的功能。   先看看简单例子:将所有单词首字母换成大写。
[u]复制代码[/u] 代码如下:
<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(/\b\w+\b/g,change)); </script>
  由上可知,当正则表达式有"g"标志时,代表将处理整个字符串,即函数change的变换将应用于所有匹配的对象。而该函数有三个或更多参数,具体个数视正则表达式而定。   有了函数与正则表达式的配合,replace()处理字符串的功能空前强大起来了!   最后还举个例子,将字符串所有单词倒序,用replace()处理是如此简单。
[u]复制代码[/u] 代码如下:
<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>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部