草庐IT

lambda表达式

全部标签

javascript - 匹配单个单词,末尾可能带有标点符号或复数形式(正则表达式)

我在Regex方面做得越来越好,但我想出了一些超出我目前能力范围的东西。我想构建一个函数来测试(返回true或false)以测试是否在字符串中找到了一个单词。但是如果在另一个词中找到这个词,我不想有一个肯定的匹配。我还想建立检查多元化的可能性。以下是我希望获得的结果的一些示例:要查找的词:“bar”“要搜索的字符串”//它应该返回什么“富酒吧”//真“富吧。”//真“噗吧!”//true(对于'bar'之前或之后的任何其他标点符号也是如此)“富吧。”//真“foo裸露。”//true(尽管bares与bars有不同的含义,我可以接受这个返回true,因为我需要检查用“es”复数的单词,

javascript - 如何检查一个字符串是否与 node.js 中的任何正则表达式数组匹配?

我正在尝试有效地检查一个字符串是否与正则表达式数组中的任何一个匹配,并在遇到的第一个匹配项中返回true(打破对正则表达式的迭代)我当前的代码:_.forEach(self._connectedClients,function(client){if(client.authenticated){varinterested=_.forEach(client.interests,function(interest){if(evt.event_type.search(interest)!=-1){returntrue;}});if(interested){self._sendJSON(clie

lambda 函数引用封闭循环中的变量时的 javascript 作用域问题

关于stackoverflow的第一个问题:)希望我不会让自己难堪......我有一个加载相册列表的javascript函数,然后为每个相册创建一个列表项。列表项应该是可点击的,所以我用一个函数调用jQuery的click()。我循环执行此操作。我的问题是所有项目似乎都具有相同的点击功能,即使我尝试制作一个在每次迭代中做不同事情的新项目。另一种可能性是迭代变量在某种程度上是全局的,函数引用它。下面的代码。debug()只是对Firebug的console.debug()的封装。functionprocessAlbumList(data,c){for(varalbumindata){va

javascript - 至少匹配 m 组中的 n 组的正则表达式

我打算编写一个正则表达式,仅当字符串至少包含n个不同类别的字符时才匹配。我打算用它来强制我的用户创建强密码,并想检查密码是否至少包含以下3项:人物大写字符数字特殊字符如果所有这些类都存在,编写一个匹配的正则表达式是微不足道的使用前瞻。但是,我无法理解“至少3”部分。这甚至可能(在一个漂亮、紧凑的表达式中)还是我必须创建一个怪物表达式? 最佳答案 我认为这将比列出4个中的3个的每个可能组合更紧凑。它利用否定前瞻来确保整个字符串不只由您列出的一个或两个字符类组成:(?!([a-zA-Z]*|[a-z\d]*|[^A-Z\d]*|[A-Z

javascript - JS 正则表达式 (?<!X)A

有谁知道如何翻译POSIX正则表达式(?在JS中?仅当A前面没有X时才查找A。 最佳答案 只需检查开头(因此没有X)或是否存在非X字符。(^|[^X])A对于多个字符,您可以检查A,然后检查X后跟A的匹配文本,如果匹配第二个模式,则丢弃该匹配项。 关于javascript-JS正则表达式(?<!X)A,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7030637/

JavaScript 正则表达式不匹配确切的字符串

在下面的示例中,输出为真。它是cookie,它也匹配cookie14214我猜这是因为cookie在字符串cookie14214中。我如何磨练这场比赛以只获得cookie?varpatt1=newRegExp(/(biscuit|cookie)/i);document.write(patt1.test("cookie14214"));这是最好的解决方案吗?varpatt1=newRegExp(/(^biscuit$|^cookie$)/i); 最佳答案 答案取决于您允许单词cookie周围的字符数。如果单词要单独出现在一行中,那么:

javascript - 以下表达式如何计算为 "10"

这个问题在这里已经有了答案:Whydoes++[[]][+[]]+[+[]]returnthestring"10"?(10个答案)关闭5年前。我最近从一个来源看到一个表达式,看起来像下面这样-++[[]][+[]]+[+[]]将此输入到Chrome(Windows7,版本27.0.1453.94m)控制台会显示“10”的结果。谁能解释一下这里发生了什么?JSFiddle.

用于匹配正则表达式的 Javascript 正则表达式

我正在研究一个特殊的正则表达式来匹配javascript正则表达式。现在我有这个正则表达式工作:/\/(.*)?\/([i|g|m]+)?/例如:'/^foo/'.match(/\/(.*)?\/([i|g|m]+)?/)=>["/^foo/","^foo",undefined]'/^foo/i'.match(/\/(.*)?\/([i|g|m]+)?/)=>["/^foo/i","^foo","i"]现在我需要让这个正则表达式与:'^foo'.match(/\/(.*)?\/([i|g|m]+)?/)=>["^foo","^foo",undefined]不幸的是,我之前的正则表达式不

javascript - 为什么表达式 new Date().getTime() 中的运算符严格按照从左到右的顺序应用?

以下表达式似乎按预期工作并返回当前时间戳。newDate().getTime()但是我不明白为什么运算符在这里严格按照从左到右的顺序应用。MDN表示成员(.)运算符的优先级高于new。这意味着.必须在new之前应用。所以表达式应该被评估为:new(Date().getTime())但实际上是这样评价的:(newDate()).getTime()我想一定是我忽略了什么,但我不明白是什么。注意:我实际上并没有使用这个表达式(我更喜欢Date.now()方法)。这只是我的好奇心。 最佳答案 MDN优先级表并不完全正确;new运算符和属性访

javascript - 立即调用函数表达式 : Where to put the parenthesis?

我看过IIFE的写法:(function(){console.log("docoolstuff");})();还有:(function(){console.log("domorecoolstuff");}());在我使用它们的任何情况下,它们似乎都以相同的方式工作,尽管在某些情况下我被告知一种方法是正确的而另一种是错误的,反之亦然。有没有人有任何可靠的理由或逻辑来说明它是一个订单而不是另一个订单?在某些情况下,在函数体关闭之后但在调用括号发挥作用之前,或者在最后一个右括号之后但之前,是否可能会有更多的事情发生?我主要在Angular模块闭包中使用它们,但似乎无法找到任何真正的理由来采用