草庐IT

lastIndex

全部标签

javascript - 正则表达式/lastIndex - 意外行为

我知道有一些正则表达式/lastIndex差异,但这对我来说是新的!预期行为:创建一个新的正则表达式(使用文字/构造函数)显然会创建一个带有lastIndex的新RegExp对象属性设置为零。实际行为:(在FF、Chrome中):lastIndex属性似乎在多个RegExp创建过程中持续存在。例如functionfoo(s){//A*NEW*regularexpression//iscreatedoneachcalloffoo():varregex=/ABC/g;document.write(regex.lastIndex+'');//regex.test()updateslastIn

javascript - JavaScript 正则表达式中 'y' 粘性模式修饰符的用途是什么?

MDN为JavaScriptRegExp引入了“y”粘性标志。这是一个documentationexcerpt:ysticky;matchesonlyfromtheindexindicatedbythelastIndexpropertyofthisregularexpressioninthetargetstring(anddoesnotattempttomatchfromanylaterindexes).还有一个例子:vartext='Firstline\nSecondline';varregex=/(\S+)line\n?/y;varmatch=regex.exec(text);co

Javascript - 多行正则表达式 : lastIndex stuck on newlines?

一些背景来自Javascript:TheDefinitiveGuide:Whenregexpisaglobalregularexpression,however,exec()behavesinaslightlymorecomplexway.ItbeginssearchingstringatthecharacterpositionspecifiedbythelastIndexprepertyofregexp.Whenitfindsamatch,itsetslastIndextothepositionofthefirstcharacterafterthematch.我认为任何经常使用jav

javascript - 在 Javascript 中展平第 n 个嵌套数组的迭代解决方案

谁能告诉我以下问题的迭代解决方案?我递归地解决了它,但在迭代解决方案中苦苦挣扎。(Facebook技术面试问题)Input:[1,{a:2},[3],[[4,5],6],7]Output:[1,{a:2},3,4,5,6,7]解决方案必须适用于第n个嵌套数组元素(即,如果有人修改上述示例中的数组值/位置,它必须仍然有效)递归解决方案:varflatten=function(input){varresult=[];input.forEach(function(element){result=result.concat(Array.isArray(element)?flatten(elem

php - Javascript lastIndex 正则表达式属性到 PHP 正则表达式

我正在尝试用PHP翻译一个javascript脚本。到目前为止进展顺利,但我偶然发现了一些我一无所知的代码:while(match=someRegex.exec(text)){m=match[0];if(m==="-"){varlastIndex=someRegex.lastIndex,nextToken=someRegex.exec(parts.content);if(nextToken){...}someRegex.lastIndex=lastIndex;}}someRegex变量如下所示:/[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[

java - 检查一个字符串是否是另一个字符串的子字符串

我阅读了关于检查字符串是否是另一个字符串的子字符串的很好练习的文章。练习的内容是:Writeaprogramthattakes2stringparametersfromthecommandline.Programmustverifyifthesecondstringisasubstringofthefirststring(youcannotusesubstr,substringoranyotherstandardfunctionincludingregularexpressionlibraries).Eachoccurrenceof*inthesecondsubstringmeanst

javascript - 如何将重叠的字符串与正则表达式匹配?

假设我有字符串"12345"如果我.match(/\d{3}/g),我只会得到一个匹配项,“123”。为什么我没有得到["123","234","345"]? 最佳答案 带有全局标志正则表达式的string#match返回一个匹配的子字符串数组。/\d{3}/g正则表达式匹配并消耗(=读入缓冲区并将其索引推进到位置在当前匹配的字符之后)3位数字序列。因此,在“吃掉”123之后,索引位于3之后,唯一剩下要解析的子字符串是45-此处不匹配.我认为regex101.com中使用的技术在这里也值得考虑:使用零宽度断言(使用捕获组的正前瞻)来

javascript - 如何将重叠的字符串与正则表达式匹配?

假设我有字符串"12345"如果我.match(/\d{3}/g),我只会得到一个匹配项,“123”。为什么我没有得到["123","234","345"]? 最佳答案 带有全局标志正则表达式的string#match返回一个匹配的子字符串数组。/\d{3}/g正则表达式匹配并消耗(=读入缓冲区并将其索引推进到位置在当前匹配的字符之后)3位数字序列。因此,在“吃掉”123之后,索引位于3之后,唯一剩下要解析的子字符串是45-此处不匹配.我认为regex101.com中使用的技术在这里也值得考虑:使用零宽度断言(使用捕获组的正前瞻)来

android - 在 Android SDK 类上对 Kotlin 扩展功能进行单元测试

Kotlin扩展功能很棒。但是我怎么能对它们进行单元测试呢?尤其是那些AndroidSDK提供的类(例如Context、Dialog)。我在下面提供了两个示例,如果有人可以分享我如何对它们进行单元测试,或者如果我真的想对它们进行单元测试,是否需要以不同的方式编写它们。funContext.getColorById(colorId:Int):Int{if(Build.VERSION.SDK_INT>=23)returnContextCompat.getColor(this,colorId)elsereturnresources.getColor(colorId)}和funDialog.s

android - 在 Android SDK 类上对 Kotlin 扩展功能进行单元测试

Kotlin扩展功能很棒。但是我怎么能对它们进行单元测试呢?尤其是那些AndroidSDK提供的类(例如Context、Dialog)。我在下面提供了两个示例,如果有人可以分享我如何对它们进行单元测试,或者如果我真的想对它们进行单元测试,是否需要以不同的方式编写它们。funContext.getColorById(colorId:Int):Int{if(Build.VERSION.SDK_INT>=23)returnContextCompat.getColor(this,colorId)elsereturnresources.getColor(colorId)}和funDialog.s
12