Javascript 替换多行上字符串的所有实例
我有一个像这样的文件Javascript 替换多行上字符串的所有实例,javascript,regex,Javascript,Regex,我有一个像这样的文件 1234567:abcdefg:X 1234567:abcdefg:X 1234567:abcdefg:X 1234567:abcdefg:X 我需要将每行(X)上的结束字符替换为0。这看起来很简单,但每次我使用regex时,它要么为null,要么为regex。replace不是一个函数。 目前我已经回答了正则表达式的/.*:(.*)/gAsadiga。我添加了两个示例(基于adigas的出色回答/评论) const subject=`1234567:abcdefg:
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
我需要将每行(X)上的结束字符替换为0。这看起来很简单,但每次我使用regex时,它要么为null,要么为regex。replace
不是一个函数。
目前我已经回答了正则表达式的
/.*:(.*)/g
Asadiga。我添加了两个示例(基于adigas的出色回答/评论)
const subject=`1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X`;
//正则表达式文字
const resultWithLiteral=subject.replace(/.$/gm,'0');
//正则表达式构造函数
常量表达式=新的RegExp(/.$/gm);
const resultWithConstructor=subject.replace(表达式“0”);
函数renderResults(){
const outputElements=document.querySelectorAll('pre');
outputElements[0]。innerText=resultWithLiteral;
outputElements[1]。innerText=resultWithConstructor;
};代码>
结果为文本
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
结果为文本
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
单击以替换
您可以将格式与冒号进行匹配,但最后一个字符除外,使用的是否定字符类和捕获组
^
字符串的开头
(
捕获组1
[^::+:[^::::+:
匹配两次非:
,然后匹配:使用
)
关闭组
\S
匹配非空白字符
$
字符串结尾
在替换中,使用捕获组1后跟0
如果最后一个字符不能是冒号,请使用[^\s:
而不是\s
const regex=/^([^::+:[^:::+:)\S$/gm;
常量str=`1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X`;
常量subst=`10`;
const result=str.replace(regex,subst);
控制台日志(结果)代码>str.replace(/.$/gm,'0')
?
^([^:]+:[^:]+:)\S$