js在Replace中使用正则

本文详细介绍了如何在JavaScript中利用正则表达式实现字符串的完全替换,并通过具体实例演示了正确的语法及注意事项。
"hand hand hand"想变换为"hand.gif hand.gif hand.gif"
开始用
str=str.replace("hand","hand.gif");
输出:hand.gif hand hand
只替换了一次。。。:(
想到用正则,因为replace本来就可以用正则替换。

引用

返回根据正则表达式进行文字替换后的字符串的复制。

stringObj.replace(rgExp, replaceText)


于是写
str = str.replace(/hand/,"hand.gif")
无效。。。
全部替换要加g,
str = str.replace(/hand/g,"hand.gif")
还是不行:(

参考了 JavaScript的replace方法与正则表达式结合应用讲解这篇文章后,终于明白,原来要用()括起来,才会替换()里的东东。正确的写法如下:
str = "hand hand hand";
str=str.replace(/(hand)/g,"hand.gif");   
document.write(str);  
正确输出:hand.gif hand.gif hand.gif。

JS的正则另一种写法是使用RegExp:
如str=str.replace(/(hand)/g,"hand.gif");
等同于:
reg = new RegExp("(hand)","g");
   str = str.replace(reg,'hand.gif');
reg需要动态生成时更适合使用这种方式。

扩展一下:
str = "hand'( hand'( hand'(";
str=str.replace(/(hand/'/()/g,"hand.gif");   
document.write(str);

str = 'hand/'( hand/'( hand/'(';
str=str.replace(/(hand/'/()/g,"hand.gif");   
document.write(str);   
在Node.js中,`replace` 方法是字符串对象的一个方法,它可以结合正则表达式来查找并替换字符串中的特定模式。下面是使用 `replace` 方法结合正则表达式使用示例和方法说明: ### 方法说明 `replace` 方法的基本语法如下: ```javascript str.replace(regexp|substr, newSubstr|function) ``` - `regexp|substr`:可以是一个正则表达式对象,也可以是一个字符串。如果是正则表达式,它会匹配所有符合模式的内容;如果是字符串,只会替换第一个匹配到的内容。 - `newSubstr|function`:可以是一个新的字符串,用于替换匹配到的内容;也可以是一个回调函数,该函数会在每次匹配时被调用,返回值将作为替换内容。 ### 使用示例 #### 示例1:替换所有匹配的字符串 ```javascript // 定义一个字符串 const str = 'Hello, World! Hello, Node.js!'; // 使用正则表达式匹配所有的 'Hello' 并替换为 'Hi' const newStr = str.replace(/Hello/g, 'Hi'); console.log(newStr); // 输出: Hi, World! Hi, Node.js! ``` 在这个示例中,`/Hello/g` 是一个正则表达式,`g` 标志表示全局匹配,即会匹配字符串中所有的 `Hello` 并将其替换为 `Hi`。 #### 示例2:使用回调函数进行替换 ```javascript // 定义一个字符串 const str = 'The price is $10, the tax is $2.'; // 使用正则表达式匹配所有的美元金额,并将其乘以2 const newStr = str.replace(/\$\d+/g, function(match) { // 去掉美元符号并转换为数字 const num = parseInt(match.slice(1)); // 乘以2并添加美元符号 return '$' + (num * 2); }); console.log(newStr); // 输出: The price is $20, the tax is $4. ``` 在这个示例中,`/\$\d+/g` 是一个正则表达式,用于匹配所有以美元符号开头,后面跟着一个或多个数字的字符串。回调函数会在每次匹配时被调用,将匹配到的金额乘以2并返回新的字符串。 ### 注意事项 - 正则表达式的标志可以控制匹配的行为,例如 `g` 表示全局匹配,`i` 表示忽略大小写,`m` 表示多行匹配等。 - 如果使用字符串作为第一个参数,只会替换第一个匹配到的内容;如果需要替换所有匹配的内容,应该使用正则表达式并加上 `g` 标志。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值