不知 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。
0 个回复