草庐IT

lambda表达式

全部标签

javascript - 为什么与特殊 unicode 字符匹配的正则表达式在 OS X 上的浏览​​器之间返回不同的结果?

注意:这个问题围绕图书馆Autolinker但应该普遍适用。问题自动链接器使用正则表达式来匹配URL字符串或包含URL的HTML字符串的某些部分。这个正则表达式的大部分围绕这个字符串:Source:https://github.com/gregjacobs/Autolinker.js/blob/master/src/RegexLib.js#L14-L29/***Thestringformofaregularexpressionthatwouldmatchallofthe*alphabetic("letter")charsintheunicodecharactersetwhenplace

javascript - 正则表达式匹配字符串末尾的数字

我正在尝试使用正则表达式匹配字符串末尾的数字。例如,字符串可能如下所示:varfoo='101*99+123.12';//wouldmatch123.12varbar='101*99+-123';//wouldmatch-123varstr='101*99+-123.';//wouldmatch-123.这是我到目前为止得到的,但如果没有小数点,它似乎匹配整个字符串:foo.match(/\-?\d+.?\d+?$/);我的意思是:\-?:可选的“-”符号\d+:1个或多个数字.?:可选小数点\d+?:可选的小数点后一位或多位$:匹配字符串末尾我错过了什么?

javascript - 执行 JavaScript 正则表达式替换时如何转义捕获组 $N 后跟整数?

据我了解,在JavaScript中,您可以执行正则表达式替换引用以捕获组,如下所示:>"HelloWorld1234567890".replace(/Hello(World)(1)(2)(3)(4)(5)(6)(7)(8)(9)(0)/,"What'sup$1");"What'supWorld"这一切都很好。但是,如果我想引用第1组,然后紧接着是“1”怎么办?说我要看什么“What'supWorld1”。所以我会写:>"HelloWorld1234567890".replace(/Hello(World)(1)(2)(3)(4)(5)(6)(7)(8)(9)(0)/,"What'sup

javascript - 当关键字后的表达式未计算为 promise 时, `await` 会发生什么情况?

我有这样的ES7代码。asyncfunctionreturnsfive(){varthree=3;varthreeP=awaitthree;returnthreeP+2;}returnsfive().then(k=>console.log(k),e=>console.error("err",e))varthreeP=awaitthree行应该发生什么?代码应该按预期继续,还是失败,因为three不是一个promise?在thisrepo,它被称为“有争议的语法和语义”。我无法通读官方文档来找到确切的定义,因为它太技术化了。默认的babel.js转换按预期记录5;然而,nodent-一个

javascript - 使用三元表达式渲染组件

我去使用三元表达式渲染一个组件。目前我正在做这样的事情{this.state.loaded?():(Loading..)}但这不起作用,并抛出一个错误提示InvariantViolationExceptionsManager.js:84UnhandledJSException:InvariantViolation:InvariantViolation:Textstringsmustberenderedwithinacomponent.[问题:]如何修复它并在三元表达式中渲染整个组件Ps:据此stackoverflowquestion:当我们进行内联条件渲染时会发生这种情况。

javascript - JavaScript 如何检测正则表达式?

我正在编写一个JS解析器,我想知道如何区分正则表达式(/lookup/g)和简单除法(bar/baz/g).JavaScript识别正则表达式的规则是什么? 最佳答案 您想查看Section7.8.5在ECMA规范中(带注释的版本目前是最新的,但请始终检查latestPDFfromtheECMA)。还要记住,JavaScript正则表达式不能为空。//始终是单行注释的开始。还值得一提的是,切勿在正则表达式文字前插入分号。切线,空JavaScript正则表达式看起来像/(?:)/。Furtherdiscussion.

javascript - FireFox 无效的正则表达式组

我有以下在chrome中运行良好的正则表达式但它在FireFox中不起作用生成语法错误InvalidRegexGroup:bld=txt.split(/(?我试过逃跑:使用/(?但它给出了同样的错误。我无法找出这个问题的原因。 最佳答案 如你所见here,截至目前,并不是每个浏览器/JavaScript环境都支持后视。因此,如果您想支持所有浏览器(包括旧版本),您实际上不能依赖该功能。因为你只想匹配除:和字符串中的第一个:之外的0+个字符,你可以使用s.match(/^[^:]*:/)参见regexdemo.JS:console.l

JavaScript 字符串替换为正则表达式并作为参数运行

在我阅读的有关此功能的书籍中,我似乎得到了相互矛盾的建议。我想知道是否有人可以澄清。例如NicholasZakas指出函数参数具有格式的签名function(match,pos,originalText)(P139:Web开发人员专业JavaScript第二版:Wrox)他接着说,当正则表达式有一个匹配项时,函数将传递三个参数(如上)。当有多个捕获组时,每个匹配的字符串作为参数传入,最后两个位置是position和originalText...然后我们来看看DougCrockfords,JavaScript:好的部分。(P90):他再次规定语法为string(searcValue,re

javascript - 这个函数可以用正则表达式重写吗?

我想重新格式化并验证用户是否提供了有效的比利时企业编号。因为输入可以是下面所有的例子:BE0123.321.123BE0123.321.123BE01233211230123.321.123123.321.123123321123我编写了一个函数来验证输入并将其重新格式化为“显示”版本(BE0123.123.123)和“代码”版本(123123123)。这个函数看起来像这样。formatAndValidateEnterpriseNumber=enterpriseNumber=>{if(enterpriseNumber===undefined||!enterpriseNumber||(e

javascript - ASP.NET 正则表达式验证器(密码强度)

我有一个具有以下表达式的验证控件:(?=(.*\\d.*){2,})(?=(.*\\w.*){2,})(?=(.*\\W.*){1,}).{8,}密码至少包含2位数字、2个字母字符、1个非字母数字和最少8个字符.不幸的是,这似乎不兼容跨浏览器。此验证在Firefox中完美运行,但在InternetExplorer中则不然。您的每个答案的组合导致:varformat="^(?=.{"+minLength+",})"+(minAlpha>0?"(?=(.*[A-Za-z].*){"+minAlpha+",})":"")+(minNum>0?"(?=(.*[0-9].*){"+minNum+