Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
点和逗号的Javascript字符串替换()方法出现故障_Javascript - Fatal编程技术网

点和逗号的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//对不起,这是一个不专业的例子:(是的,好吧,请使用添加到您的帖子。谢谢我添加了。)