javascript replace()需要区分大小写吗

发布时间:2021-11-04 16:05:01 作者:iii
来源:亿速云 阅读:492

本篇内容主要讲解“javascript replace()需要区分大小写吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript replace()需要区分大小写吗”吧!

在javascript中,replace()函数可以利用正则表达式来不区分大小写的替换字符串,语法“string.replace(/要查找的值/gi,"替换值")”;其中“g”代表全局替换,“i”代表忽略大小写。

javascript replace()需要区分大小写吗

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

在javascript中,replace()函数可以不区分大小写的替换字符串,这需要借助正则表达式。

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

语法:

string.replace(searchvalue,newvalue)
参数描述
searchvalue必须。规定子字符串或要替换的模式的 RegExp 对象。
请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。
newvalue必需。一个字符串值。规定了替换文本或生成替换文本的函数。

返回值:一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

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

replace() 方法第二个参数中特殊字符
约定字符串说明
$1、$2、...、$99与正则表达式中的第 1~99 个子表达式相匹配的文本
$&(美元符号+连字符)与正则表达式相匹配的子字符串
$’(美元符号+切换技能键)位于匹配子字符串左侧的文本
$'(美元符号+单引号)位于匹配字符串右侧的文本
$$表示 $ 字符串

示例1

将字符串中的字符 a(不区分大小写) 替换为 x

<p>
将字符串中的字符 a(不区分大小写) 替换为 x
</p>
<p id="demo"></p>

<script>
var sText = "abcdefaABC";
//g 代表全局替换  i 代表 忽略大小写
var txt = sText.replace( /a/gi , 'x');
document.getElementById("demo").innerHTML = txt;
</script>

输出结果:

javascript replace()需要区分大小写吗

示例2

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

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() 方法是在原文本中使用这个返回的新字符串替换掉每次匹配的子字符串。

示例3

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

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() 方法会给它传递多个实参,这些实参都包含一定的意思,具体说明如下:

示例4

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

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

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

示例5

下面代码利用函数的 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] 总是显示被操作的字符串。

到此,相信大家对“javascript replace()需要区分大小写吗”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. javascript和HTML5利用canvas构建猜牌游戏
  2. 如何应对大数据时代

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

javascript replace()

上一篇:JavaScript属于语言吗

下一篇:怎么解决在php7中不能加载redis的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》