在 Javascript.replace 中使用变量
Using variables in Javascript.replace
我正在尝试在 android 的 Web 视图中注入 javascript 的替换方法。
此代码有效:
{
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
是保留关键字,不应用作变量名
我正在尝试在 android 的 Web 视图中注入 javascript 的替换方法。
此代码有效:
{
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
是保留关键字,不应用作变量名