replace 忽略大小写,python replace不区分大小写
本教程运行环境:windows7系统,javascript1.8.5版本1.8.5,戴尔G3电脑。
在javascript中,replace()函数可以不区分大小写地替换字符串,这需要正则表达式的帮助。
replace()方法用于将字符串中的某些字符替换为其他字符,或者替换与正则表达式匹配的子字符串。
语法:
String.replace (searchvalue,newvalue)参数说明searchvalue必须为。指定要替换的子字符串或模式的RegExp对象。
请注意,如果该值是一个字符串,它将被用作要检索的直接数量文本模式,而不是首先被转换为RegExp对象。需要新值。字符串值。指定替换文本或生成替换文本的函数。返回值:一个新字符串,在用replacement替换regexp的第一个或所有匹配项后获得。
replace()方法的第二个参数可以使用函数,匹配时会调用函数,函数的返回值会作为替换文本。同时,该函数可以接收以$为前缀的特殊字符来引用匹配文本的相关信息。
在replace()方法的第二个参数中,特殊字符约定字符串描述$1,$2,$99匹配正则表达式$(美元符号连字符)中的第1到第99个子表达式匹配正则表达式子字符串$ (美元符号切换技能键)匹配子字符串$ 左侧的文本(美元符号单引号)匹配字符串$ $右侧的文本
用x替换字符串中的字符A(不区分大小写)
p
用x替换字符串中的字符A(不区分大小写)
/p
p id=demo/p
脚本
var sText= abcdefaABC
//g表示全局替换,I表示忽略大小写
var txt=sText.replace( /a/gi, x );
document.getElementById(demo )。innerHTML=txt
/script输出结果:
示例1
下面的代码将字符串中的每个单词转换为首字母的大写形式。
var s=javascript是脚本,不是java ;//定义字符串
//定义替换文本函数,参数是匹配文本的第一个子表达式。
var f=函数(1美元){
//将匹配文本的首字母转换为大写
返回$1.substring(0,1)。toUpperCase() $1.substring(1)。toLowerCase();}
var a=s.replace(/(\b\w \b)/g,f);//匹配文本并替换它
console . log(a);//返回字符串“JavaScript是脚本,不是Java。”在上面的例子中,将函数的参数替换为特殊字符“$1”,它代表正则表达式/(\b\w \b)/小括号匹配的文本。然后,在函数结构内处理这个匹配的文本,截取它的第一个字母并转换成大写,其余字符全部小写,然后返回新处理的字符串。replace()方法用原始文本中返回的新字符串替换每个匹配的子字符串。
示例2
通过使用括号可以进一步扩展上面的例子,以获得更多的匹配信息。比如一个单词的首字母直接通过括号,然后进行大小写转换,处理结果都是一样的。
var s=javascript是脚本,不是java ;//定义字符串
Var=function ($1,$2,$ 3){//定义替换文本函数,请注意参数的变化。
return $ 2 . toupper case()$ 3;
}
var a=s.replace(/(\b\w \b)/g,f);
console . log(a);函数f()中,第一个参数表示每次匹配的文本,第二个参数表示第一个括号的子表达式匹配的文本,即单词的第一个字母,第二个参数表示第二个括号的子表达式匹配的文本。
replace()方法的第二个参数是一个函数,replace()方法将向它传递许多参数,这些参数都包含特定的含义,如下所示:
第一个参数表示与匹配模式匹配的文本,例如上面示例中每个匹配的单词字符串。
以下参数是匹配模式中与子表达式匹配的字符串,参数个数不限,取决于子表达式的个数。
下面的参数是一个整数,它指示字符串中匹配文本的下标位置。
最后一个参数代表字符串本身。
示例3
将上面示例中的替换文本函数更改为以下形式。
var f=function() {
返回参数[1]。toUpperCase()参数[2];
}也就是说,如果不向函数传递参数,也可以通过直接调用函数的arguments属性,读取正则表达式中相关匹配文本的信息。其中包括:
Arguments[0]:表示每个匹配项的文本,即单词。
Arguments[1]:表示第一个子表达式匹配的文本,即单词的第一个字母。
Arguments[2]:表示第二个子表达式匹配的文本,即单词的剩余字母。
Arguments[3]:表示匹配文本的下标位置,如第一个匹配单词“javascript”的下标位置为0,以此类推。
Arguments[4]:表示要匹配的字符串,这里表示“javascript是脚本,不是java。”。
示例4
下面的代码使用函数的arguments对象主动获取replace()方法第一个参数中正则表达式匹配的详细信息。
var s=javascript是脚本,不是java ;//定义字符串
var f=function () {
for(var I=0;一.论据长度;i ) {
Console.log(第(i 1)个参数的值: arguments[I]);
}
console . log(-);
}
var a=s.replace(/(\b\w \b)/g,f);在函数结构中,使用for循环结构遍历arguments属性时,发现每匹配一个单词,就会弹出五次提示信息,分别显示上面列出的匹配文本信息。其中,arguments[1]和arguments[2]会根据每个匹配文本的差异显示当前匹配文本中子表达式匹配的信息,arguments[3]会显示当前匹配单词的下标位置。而arguments[0]总是显示每次匹配的单词,arguments[4]总是显示操作过的字符串。
【推荐学习:javascript高级教程】以上是javascript replace()是否区分大小写的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。