特殊字符-如何在Javascript中用两个黑斜杠替换反斜杠

special characters - How to replace backslash with two blackslashes in Javascript

本文关键字:两个 替换 Javascript 特殊字符      更新时间:2023-09-26

我有一个如下格式的字符串

var myStrg = "domain'john";

我需要用两个''字符替换'作为domain''john

我怎样才能做到这一点?

我已经问了很多类似的问题和答案,但没有一个人能回答这个问题。

如有任何建议,不胜感激。

编辑01:

为了使这个问题更清楚,我在代码中添加了更多的背景信息。如您所见,username是一个参数。它的格式类似于'domain_name'user_name'。因此,当我将此username附加到URL时,问题发生了。并且我无法控制接收值作为用户名。

function myFunction(username) {
var fullurl = "http://myserver/mysite/_api/web/lists/getbytitle('MyTestList')/items?$select=ID&$filter=Username eq '" + username + "'";
NWF$.ajax({
    url: fullurl,
    method: "GET",
    async: false,
    headers: { "Accept": "application/json; odata=verbose" },
    success: function (data) {
        //process returned data here
    },
    error: function (data) {
        alert('Error occurred.');
    }
});

}

根据转义序列,''表示单个'(backslash)

console.log("domain''''john");

如果您要求将单反斜杠替换为双反斜杠,

console.log("domain''john".replace(/''/g, ''''''));

问题是使用这个声明

var myStrg = "domain'john";

Javascript将存储"domainjohn",因为"'j"被认为是"j"。要用"'"来存储它,使用如下命令:

var myStrg = "domain''john";

如果你想要双引号"'"使用这个:

var myStrg = "domain''''john";

如果你想用正则表达式以编程方式替换单个"'",使用:

var myStrg = "domain''john";
myStrg.replace(/''/g,"''''")

EDIT 01 RESPONSE

在你编辑之后,我想也许你要找的是这个:

encodeURIComponent(username)

这将把"domain''john"转换成"domain%5Cjohn",这是url参数的可接受格式。

但是,调用函数的方法是使用"''"
myFunction("domain''john");

您可以在replace方法中使用regex。下面的代码没有经过测试,但是正则表达式应该可以工作。

var myStrg = "domain'john";
myStrg = myStrg.replace(/''/g, '''''');