在Javascript.replace中使用变量
我正在尝试在android的webview中为javascript注入replace方法 此代码适用于:在Javascript.replace中使用变量,javascript,android,regex,variables,webview,Javascript,Android,Regex,Variables,Webview,我正在尝试在android的webview中为javascript注入replace方法 此代码适用于: { mWebView.loadUrl("javascript:(function(){" + "document.body.innerHTML = document.body.innerHTML.replace('hello', 'hi');" + "})()");
{
mWebView.loadUrl("javascript:(function(){" +
"document.body.innerHTML = document.body.innerHTML.replace('hello', 'hi');" +
"})()");
}
但是,我希望使用变量,而不是将字符串放在方法中。我尝试使用正则表达式,但似乎不起作用
{
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
是一个保留关键字,不应用作变量名,因此您要计算它?new RegExp(“+old+”,'g')
和。替换(ol,“+new+”)
var似乎无法识别其中的文本作为字符串…有什么方法可以解决这个问题吗?对不起,我原以为这会起作用,并将其标记为answer,但当我将其放入代码中时,它就不起作用了。