繁体   English   中英

使用javascript替换字符串中的所有匹配项

[英]replace all occurrences in string using javascript

我有这个字符串:

“ dsfnsdfksh [aa] lkdfjldfjgljd [aa]”

我需要找到[aa]的所有出现次数,并用另一个字符串替换它,例如:dd

我怎样才能做到这一点?

您可以将正则表达式与g标志一起使用。 请注意,您必须使用\\转义[] \\

 //somewhere at the top of the script if (!RegExp.escape) { RegExp.escape = function(value) { return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, "\\\\$&") }; } var string = "dsfnsdfksh[aa]lkdfjldfjgljd[aa]"; var pattern = '[aa]'; var regex = new RegExp(RegExp.escape(pattern), 'g'); var text = string.replace(regex, 'dd'); console.log(text) 

您可以为此使用.replace 这是一个例子:

的HTML

<!DOCTYPE Html />
<html>
    <head>
        <title></title>
    </head>
    <body>
        <input type="text" id="theInput" />

        <input type="submit" value="replace" id="btnReplace"/>

        <script type="text/javascript" src="theJS.js"></script>
    </body>
</html>

的JavaScript

var fieldInput = document.getElementById("theInput");
var theButton = document.getElementById("btnReplace");

theButton.onclick = function () {
    var originalValue = fieldInput.value;
    var resultValue = originalValue.replace(/\[aa\]/g, "REPLACEMENT");
    fieldInput.value = resultValue;
}

这样,我可以替换所有出现的情况:

var pattern = '[aa]';
var string = "dsfnsdfksh[aa]lkdfjldfjgljd[aa]";

var text = string.replace(new RegExp(pattern.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), 'g'), 'dd');

console.log(text);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM