如何解决javascript replace无法使用3点
我有一个字符串,例如。
what a nice pony...and also nice dog...and nice car.
我想将'...'
的每个实例替换为'​...​'
这适用于第一个'...'
,并具有以下内容:
var updatedStr = str.replace('...',"​...​");
但是我想更新所有'...'实例并尝试:
var updatedStr = str.replace(/.../g,"​...​");
但这会用点更新整个字符串。
我在做什么错了?
解决方法
您需要转义所有点并将正则表达式设为全局:
var updatedStr = str.replace(/\.\.\./g,'​');
,
第一个示例之所以有效,是因为您只是在进行普通的字符串替换,而在第二个示例中,您正在使用正则表达式。
在正则表达式中使用.
时,这实际上是一个特殊字符,表示“匹配您可以找到的任何字符”。
如果要字面上匹配三个点/句点,则需要在每个正则表达式中使用反斜杠“ /”来将它们“转义”。正则表达式中的反斜杠将禁用句点的特殊功能。
str.replace(/\.\.\./g,"​...​");
,
试试这个! :D
const str = "what a nice pony...and also nice dog...and nice car."
const updated = str.split('...').join('​...​')
console.log(updated)
,
您可以使用方括号加上点的数量,并使用全局正则表达式替换所有出现的...
。
特殊字符大多在方括号内失去其含义。点.
不起作用的原因是它具有特殊的含义:除非转义,否则它匹配任何字符(行终止符除外):
var str = "what a nice pony...and also nice dog...and nice car.";
var updatedStr = str.replace(/[.]{3}/g,"​...​");
console.log(updatedStr);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。