Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在React Native Webview';什么是注入的JavaScript?_Javascript_Ios_React Native_Wkwebview - Fatal编程技术网

如何在React Native Webview';什么是注入的JavaScript?

如何在React Native Webview';什么是注入的JavaScript?,javascript,ios,react-native,wkwebview,Javascript,Ios,React Native,Wkwebview,当我在React Native Webview的injectedJavaScript属性中使用regexp时,将抛出一个错误Unterminated regular expression literal error,并且regexp将不被接受 我应该如何在injectedJavaScript中使用regexp?如果没有,有什么解决方法可以使用吗? 最低可复制代码如下所示: //这行不通 //这也不行 //这会奏效的 操作系统:iOS 操作系统版本:13.3.1 react本机版本:0.61.

当我在React Native Webview的injectedJavaScript属性中使用regexp时,将抛出一个错误
Unterminated regular expression literal error
,并且regexp将不被接受

我应该如何在injectedJavaScript中使用regexp?如果没有,有什么解决方法可以使用吗?

最低可复制代码如下所示:

//这行不通
//这也不行
//这会奏效的
  • 操作系统:iOS
  • 操作系统版本:13.3.1
  • react本机版本:0.61.2
  • react本机webview版本:8.1.2
检查下面的bug屏幕

完整错误消息:


计算injectedJavaScript时出错:这可能是由于不支持的返回类型造成的。尝试将true添加到injectedJavaScript字符串的末尾。Error Domain=WKErrorDomain Code=4“发生JavaScript异常”UserInfo={WKJavaScriptExceptionLineNumber=1,WKJavaScriptExceptionMessage=SyntaxError:Unterminated正则表达式文字“/”,WKJavaScriptExceptionColumnNumber=0,WKJavaScriptExceptionSourceURL=,NSLocalizedDescription=发生JavaScript异常}您不是在编写普通的Javascript—您是在webview中编写Javascript,必须首先通过webview评估语法。要在
injectedJavaScript
中使用文字反斜杠(例如,对于
\r
),请改为使用两个反斜杠(
\\r
):

我认为

<WebView
  source={{ uri: 'https://github.com/ashi009/node-fast-html-parser' }}
  injectedJavaScript={`const regE = new RegExp(/\n|\r/);`}
/>

(对
\r
也做了同样的事情)。但是正则表达式文本中不允许使用换行符。

您不是在编写普通的Javascript,而是在webview中编写Javascript,必须首先通过webview对语法进行评估。要在
injectedJavaScript
中使用文字反斜杠(例如,对于
\r
),请改为使用两个反斜杠(
\\r
):

我认为

<WebView
  source={{ uri: 'https://github.com/ashi009/node-fast-html-parser' }}
  injectedJavaScript={`const regE = new RegExp(/\n|\r/);`}
/>

(对
\r
也做了同样的事情)。但是在正则表达式文本中不允许使用换行符。

这可能是一个转义字符,您能详细说明吗?胡猜。尝试一个没有反斜杠的模式,看看它是否编译。也可以放一个
在声明的末尾,我可以使用没有反斜杠的模式而不会出错。谢谢但我需要有反斜杠的图案。那我该怎么办呢?听起来好像它在webview中被解释为转义字符或其他东西,所以在模式中只有一个反斜杠是不够的。尝试双转义反斜杠,它可能会起作用:
/\\n| \\r/这可能是一个转义字符,你能详细说明吗?胡猜。尝试一个没有反斜杠的模式,看看它是否编译。也可以放一个
在声明的末尾,我可以使用没有反斜杠的模式而不会出错。谢谢但我需要有反斜杠的图案。那我该怎么办呢?听起来好像它在webview中被解释为转义字符或其他东西,所以在模式中只有一个反斜杠是不够的。尝试双转义反斜杠,它可能会起作用:
/\\n| \\r/
<WebView
  source={{ uri: 'https://github.com/ashi009/node-fast-html-parser' }}
  injectedJavaScript={`const regE = new RegExp(/
|\r/);`}
/>