HarmonyOS 鸿蒙Next使用webview,正则执行两次就会冻结卡死
HarmonyOS 鸿蒙Next使用webview,正则执行两次就会冻结卡死
webview中执行两次 const a_regex = new RegExp(’<a[^>]>(.?)</a>’, ‘gi’);
const http_regex = /(?<=’).?(?=’)/
const text_regex = /(?<=>).?(?=<)/
const spanList = text.match(a_regex)
正则,就会导致卡死,有碰到这个情况吗
更多关于HarmonyOS 鸿蒙Next使用webview,正则执行两次就会冻结卡死的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next使用webview,正则执行两次就会冻结卡死的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
如果改为不加修饰符gi,比如
const a_regex = new RegExp('<a[^>]*>(.*?)<\/a>');就不会卡死
针对HarmonyOS 鸿蒙Next使用webview时正则执行两次就会冻结卡死的问题,这通常是由于正则表达式匹配的文本过大,导致内存占用过高而引起的。
具体解决方案包括:
- 优化正则表达式:尝试简化正则表达式,减少其复杂性和匹配范围,以降低内存占用。
- 限制匹配文本大小:在处理大量文本时,考虑将文本分割成小块进行处理,避免一次性匹配过大的文本。
- 避免使用全局修饰符:如果可能,避免在正则表达式中使用全局修饰符(如’g’),因为这可能导致正则表达式在整个文本中多次匹配,增加内存消耗。
如果以上方法仍然无法解决问题,建议检查鸿蒙系统的版本是否支持当前webview的所有功能,或者尝试更新系统至最新版本。同时,也可以查看鸿蒙系统的开发者文档,了解是否有关于webview性能优化的更多信息。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。