点和逗号的Javascript字符串替换()方法出现故障
我想使用用户输入值替换文本,但对于以下脚本,替换时点和逗号出现故障。我尝试了点和逗号的Javascript字符串替换()方法出现故障,javascript,Javascript,我想使用用户输入值替换文本,但对于以下脚本,替换时点和逗号出现故障。我尝试了(/\x/)方法,但它不起作用,可能是因为它是一个值。那么,如何更准确地执行输出呢 function myFunction() { var str = document.getElementById("text").value; var x = new RegExp(document.getElementById("x").value, "g"); var y = document.getElem
(/\x/)
方法,但它不起作用,可能是因为它是一个值。那么,如何更准确地执行输出呢
function myFunction() {
var str = document.getElementById("text").value;
var x = new RegExp(document.getElementById("x").value, "g");
var y = document.getElementById("y").value;
var txt = str.replace(x, y);
document.getElementById("newText").innerHTML = txt;
}
function reset() {
document.getElementById("text").value = "";
}
例如:
text = ..........a.a.a..a..a..aaaaaa..a.a.
x = ..a
y = B
output = ........B.BBBBBaaB.a.
但产出应该是合理的
........B.a.aBBBaaaaaB.a.
(很抱歉这个不专业的例子…)
我现在正在学习JS,不是专业人士,我正在尝试使用JS制作一个替换网页,就像在MS记事本中一样,你可以按ctrl+H替换任何单词或字母。你正在寻找
RegExp.escape
,不幸的是,JavaScript技术委员会的聪明人决定加入该标准,因为您或其他任何人可能永远不会遇到边缘案例
if(!RegExp.escape){
RegExp.escape = function(s){
return String(s).replace(/[\\^$*+?.()|[\]{}]/g, '\\$&');
};
}
然后,您可以对一个值调用它,它将转义它以用于新RegExp
:
var raw = document.getElementById("x").value;
var x = new RegExp(RegExp.escape(raw), "g");
您需要这个正则表达式-[.]{2}[a]或[.][.][a]
带尾随a的两点必填。并且应该是3个字符。欢迎使用堆栈溢出!(请花点时间介绍一下。)您能添加一些示例输入和输出,以及您想要得到的内容吗?示例:text=..a.a.a..a..a..aaaaaa..a.a。x=…a y=B输出=…B.bbbbb aab.a。但是输出应该是=……B.a.abbbaaab.a//对不起,这是一个不专业的例子:(是的,好吧,请使用添加到您的帖子。谢谢我添加了。)