3***@qq.com
3***@qq.com
  • 发布:2024-11-28 17:36
  • 更新:2024-11-28 17:36
  • 阅读:18

uts 正则表达式的 exec 方法在执行后疑似只能自动更新一次 lastIndex 属性的值

分类:uts

不知 uts 中正则表达式 exec 方法的行为是否本就与下述情况一致,如果本就与下述情况一致,那么请忽略以下描述。

出现地点:

uni-app-x 的 uvue 页面, <script> 标记的 uts 代码中。

出现 bug 的语言点:

正则表达式的 exec 方法以及其 lastIndex 属性。

bug 具体情况过程描述:

描述前,先以文字说明方式定义两个变量,以便于以下的描述:

  • re -- (正则表达式)
  • str -- (字符串)

-------------------

  • 对字符串 str 执行正则表达式 re 的 exec 方法 -- (执行完毕后,按照文档说明,re 的 lastIndex 属性值应该 自动 由 0 变为 1。代码运行到这里,是符合这个预期的。而 bug 是从下面一步开始出现的。)
  • 再次对字符串 str 执行正则表达式 re 的 exec 方法 -- (第二次执行完毕后,按照预期,re 的 lastIndex 属性值应该 自动 由 1 变为 2,但是 lastIndex 属性值却没有变化,依然保持为 1。并且,后续无论多少次执行 exec 方法,lastIndex 属性值都不会再发生变化,而是始终保持为 1。)
  • 第三次对字符串 str 执行正则表达式 re 的 exec 方法 -- (第二次执行完毕后,lastIndex 属性值依然保持为 1。

……

后续无论多少次执行 exec 方法,lastIndex 属性值都不会再发生变化,而是始终保持为 1。

2024-11-28 17:36 负责人:无 分享
已邀请:

要回复问题请先登录注册