使用Javascript.replace中的变量

Using variables in Javascript.replace

本文关键字:变量 replace Javascript 使用      更新时间:2023-09-26

我正在尝试在android的webview中注入javascript的replace方法。

此代码有效:

       {
            mWebView.loadUrl("javascript:(function(){" +
                    "document.body.innerHTML = document.body.innerHTML.replace('hello', 'hi');" +
                    "})()");
            }

但是,我希望使用变量,而不是将字符串放入方法中。我尝试过使用regex,但它似乎不起作用。

        {
            String old = "hello";
            String new = "hi";
            mWebView.loadUrl("javascript:(function(){" +
                    "var ol = new RegExp(old,'g');" +
                    "document.body.innerHTML = document.body.innerHTML.replace(ol, new);" +
                    "})()");
            }

我的密码有问题吗?

在将变量传递到类似的字符串中时,必须引用这些变量

{
    String old  = "hello";
    String _new = "hi";
    mWebView.loadUrl("javascript:(function(){" +
                    "var ol = new RegExp("+old+",'g');" +
                    "document.body.innerHTML = " +            
                    "document.body.innerHTML.replace(ol, " +_new+ ");" +
                    "})()"
    );
}

注意,new是一个保留关键字,不应用作变量名