String.replace

replace方法是属于String对象的,可用于替换字符串。

简单介绍:

String.replace(searchValue,replaceValue)

  1. String:字符串
  2. searchValue:字符串或正则表达式
  3. replaceValue:字符串或者函数

字符串替换字符串

‘I am loser!‘.replace(‘loser‘,‘hero‘)
//I am hero!

直接使用字符串能让自己从loser变成hero,但是如果有2个loser就不能一起变成hero了。

‘I am loser,You are loser‘.replace(‘loser‘,‘hero‘);
//I am hero,You are loser

正则表达式替换为字符串

‘I am loser,You are loser‘.replace(/loser/g,‘hero‘)
//I am hero,You are hero

使用正则表达式,并将正则的global属性改为true则可以让所有loser都变为hero

有趣的替换字符

replaceValue 可以是字符串。如果字符串中有几个特定字符的话,会被转换为特定字符串。

字符 替换文本
$& 与正则相匹配的字符串
$` 匹配字符串左边的字符
$‘ 匹配字符串右边的字符
$1,$2,$3,…,$n 匹配结果中对应的分组匹配结果

使用$&字符给匹配字符加大括号

var sStr=‘讨论一下正则表达式中的replace的用法‘;
sStr.replace(/正则表达式/,‘{$&}‘);
//讨论一下{正则表达式}中的replace的用法

使用$`和$‘字符替换内容

‘abc‘.replace(/b/,"$`");//aac
‘abc‘.replace(/b/,"$‘");//acc

使用分组匹配组合新的字符串

‘[email protected]‘.replace(/(.+)(@)(.*)/,"$2$1")//@nimojs

replaceValue参数可以是一个函数

String.replace(searchValue,replaceValue) 中的replaceValue可以是一个函数.

如果replaceValue是一个函数的话那么,这个函数的arguments会有n+3个参数(n为正则匹配到的次数)

先看例子帮助理解:

function logArguments(){
    console.log(arguments);//["[email protected]", "nimojs", "@", "126.com", 0, "[email protected]"]
    return ‘返回值会替换掉匹配到的目标‘
}
console.log(
    ‘[email protected]‘.replace(/(.+)(@)(.*)/,logArguments)
)

参数分别为

  1. 匹配到的字符串(此例为[email protected],推荐修改上面代码的正则来查看匹配到的字符帮助理解)
  2. 如果正则使用了分组匹配就为多个否则无此参数。(此例的参数就分别为"nimojs", "@", "126.com"。推荐修改正则为/nimo/查看控制台中返回的arguments值)
  3. 匹配字符串的对应索引位置(此例为0)
  4. 原始字符串(此例为[email protected])

使用自定义函数将A-G字符串改为小写

‘JAVASCRIPT‘.replace(/[A-G]/g,function(){
    return arguments[0].toLowerCase();
})//JaVaScRIPT

使用自定义函数做回调式替换将行内样式中的单引号删除

‘<span style="font-family:\‘微软雅黑\‘;">;demo</span>‘.replace(/\‘[^‘]+\‘/g,function(){
    var sResult=arguments[0];
    console.log(sResult);//‘微软雅黑‘
    sResult=sResult.replace(/\‘/g,‘‘);
    console.log(sResult);//微软雅黑
    return sResult;
})//<span style="font-family:微软雅黑;">demo</span>
时间: 2024-12-28 00:57:41

String.replace的相关文章

String.replace与String.format

字符串的替换函数replace平常使用的频率非常高,format函数通常用来填补占位符.下面简单总结一下这两个函数的用法. 一.String.replace的两种用法 replace的用法如:replace(regexp, string|fn):第一个参数都是正则表达式,第二个参数可以是要替换的字符串,也可以是带返回值的函数,它的功能就是拿第二个参数替换匹配的值. 1.replace(regexp, string):我想把“乐小天”中的“小”替换成“大”,如下所示. console.log("乐

[Javascript] How to use JavaScript&#39;s String.replace

In JavaScript, you can change the content of a string using the replace method. This method signature is overloaded with a bunch of different ways to do string replacement in JavaScript. This lesson covers the entire API (including an interestingDSL 

[转]String.Replace 和 String.ReplaceAll 的区别

JAVA 中的 replace replaceAll 问题: 测试code System.out.println("1234567890abcdef -----> "+"1234567890abcdef".replace("12345", "ABCDE"));  System.out.println("1234567890abcdef -----> "+"1234567890abcde

js中字符替换函数String.replace()使用技巧

String.replace( ) 简介 语法: var strings = string.replace(regexp, replacement) regexp :您要执行替换操作的正则表达式,如果传入的是一个字符串,那就会当作普通字符来处理,并且只会执行一次替换操作:如果是正则表达式,并且带有 global (g) 修饰符,则会替换所有出现的目标字符,否则,将只执行一次替换操作. replacement :您要替换成的字符. 返回值是执行替换操作后的字符串. 11 String.replac

JAVA中string.replace()和string.replaceAll()的区别及用法

乍一看,字面上理解好像replace只替换第一个出现的字符(受javascript的影响),replaceall替换所有的字符,其实大不然,只是替换的用途不一样.    public String replace(char oldChar,char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的. 如 果 oldChar 在此 String 对象表示的字符序列中没有出现,则返回对此 String 对象的引用.否则,创建一个新的

python 字符串替换功能 string.replace()可以用正则表达式,更优雅

说起来不怕人笑话,我今天才发现,python 中的字符串替换操作,也就是 string.replace() 是可以用正则表达式的. 之前,我的代码写法如下,粗笨: 自从发现了正则表达式也生效后,代码变得优雅简洁: 备注:上图中的base_info 是 pandas 里的 dataframe 数据结构,可以用上述方法使用 string 的 replace 方法. 原文地址:https://www.cnblogs.com/jjliu/p/11514226.html

JavaScript中string.replace的一个特殊用法

1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title></title> 6 <script type="tex

JavaSE8基础 String replace 更改字符串为首字母大写,其余字母小写的

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        code: package jizuiku.t02; public class Demo1 { public static void main(String[] args) { //首字母大写,其他字母小写 //但是,首字母是特殊字符的情况没有考虑的到 System.out.println(change("CNBLO

String.replace使用技巧

relace replace() 方法返回一个由替换值替换一些或所有匹配的模式后的新字符串.模式可以是一个字符串或者一个正则表达式, 替换值可以是一个字符串或者一个每次匹配都要调用的函数. 使用字符串作为参数 变量名 代表的值 $$ 插入一个 "$". $& 插入匹配的子串. $` 插入当前匹配的子串左边的内容. $' 插入当前匹配的子串右边的内容. $n 假如第一个参数是 RegExp对象,并且 n 是个小于100的非负整数,那么插入第 n 个括号匹配的字符串.提示:索引是从