草庐IT

javascript - JS正则表达式查找被双引号包围的子串

我需要找到一个用双引号括起来的子串,例如像"test","te\"st"or"",但不是"""也不是"\"。要做到这一点,下面是最好的方法1)/".*"/g2)/"[^"\\]*(?:\\[\S\s][^"\\]*)*"/g3)/"(?:\\?[\S\s])*?"/g4)/"([^"\\]*("|\\[\S\s]))+/g昨天面试的时候被问到这个问题,想知道答案以备日后引用。 最佳答案 这些表达式的计算如下:表达式1匹配:一个引号贪婪任何字符,包括倒逗号或斜杠最后一个引号。这会匹配“test”一些错误的文本“text”,因此失败表达

javascript - 使用javascript中的正则表达式捕获文本中的第一个数字

上下文我有一些CSS可以做过渡:div.mad{-webkit-transition:top.4s,left.5slinear,opacity.75s,padding-top1s;transition:top.4s,left.5slinear,opacity3s,padding-top1s;}我正在尝试在此列表中找到最大值,使用正则表达式很容易做到。/(\d*\.){0,1}\d+/g我的问题是,当我获得CSS值时$("div.mad").css("transition")它回来作为top0.4sease0s,left0.5slinear0s,opacity3sease0s,paddi

javascript - 为什么我的 JavaScript 正则表达式不起作用?

我不明白为什么,但是这段代码给我一个JavaScript错误:String.prototype.format=function(values){varresult=this;for(vari=0,len=values.length;i错误Exceptionthrown:invalidquantifier这是怎么回事? 最佳答案 我相信你必须转义{和}。String.prototype.format=function(values){varresult=this;for(vari=0,len=values.length;i

javascript - 如何改进(消除太多标记?)JavaScript 中的慢正则表达式?

我有在冒号前加粗部分行的功能。//Fastregex(time:0)varcolonRegex=/^[^*:\n]+:/gm;和//Slowregex(time:139)Limitby10words//varcolonRegex=/^([^*:\n]+?){1,10}:/gm;//IhaveissuewithitwhenIwanttoapplyreplacetotensofdivs(itfreezeschrome)varbolded=str.replace(colonRegex,function(match){return""+match+"";});你可以在jsfiddle上测试它:

javascript - Chrome 75 正则表达式, 'S' 匹配奇怪的 unicode 范围

我们在最新版本的Chrome(75)上有一个奇怪的错误,它将S替换为Sconsole.log('AZERTYUIOPQSDFGHJKLMWXCVBN'.replace(/[\u00A0-\u9999&]/gim,char=>`&#${char.charCodeAt(0)};`))//AZERTYUIOPQSDFGHJKLMWXCVBN有人知道是代码问题还是Chrome问题吗? 最佳答案 已在75.0.3770.142中修复。你发现了一个有趣的错误:由于某些原因,这两个测试是正确的,这取决于不相关的字符范围:>/[\u0178-\u0

javascript - javascript正则表达式中回车、换行和多个空格的匹配

我正在尝试用单个空格替换回车符(\r)和换行符(\n)以及多个空格('')。我使用了\W+来帮助实现这一点,但是它也用空格替换了特殊字符。我想改变这个只替换上面的字符。请帮助我使用javascript中的replace方法使用正确的正则表达式。 最佳答案 这会起作用:/\n|\s{2,}/gvarres=str.replace(/\n|\s{2,}/g,"");您可以在这里进行测试:https://regex101.com/r/pQ8zU1/1 关于javascript-javascri

Javascript 正则表达式 : Match anything but newlines (\r?\n)

我想让我的RegExp匹配除换行符以外的任何内容\r?\n 最佳答案 应该这样做:/(?:[^\r\n]|\r(?!\n))/g这匹配除\r和\n之外的任何字符,或者匹配后面没有\n的单个\r。 关于Javascript正则表达式:Matchanythingbutnewlines(\r?\n),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4344819/

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

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

javascript - 这个正则表达式部分添加了什么?

我在jQuery源代码中遇到了这个正则表达式:...rmozilla=/(mozilla)(?:.*?rv:([\w.]+))?/,...我想知道为什么它相当复杂。我对第二部分背后的原因特别感兴趣:(?:.*?rv:([\w.]+))?我做了一些研究,但我无法弄清楚这部分正则表达式添加了什么。(?:)tomatchbutnotcapture.*?anyamountofanycharacterrv:somethingliteral([\w.]+)oneormorewordcharactersoradot?appear0or1time特别是最后一个?对我来说意义不大。如果存在或不存在由第二

Javascript 正则表达式匹配字符串中以 '#' 开头的任何单词

我对正则表达式很陌生。我正在尝试匹配不包含换行符的字符串中以“#”开头的任何单词(内容已在换行符处拆分)。示例(不工作):varstring="#iPhoneshouldbeabletocompl#teand#deleteitems"varmatches=string.match(/(?=[\s*#])\w+/g)//Wantmatchestocontain['iPhone','delete']我正在尝试匹配“#”的任何实例,并捕获它后面的东西,只要它后面至少有一个字母、数字或符号。一个空格或一个换行符应该结束比赛。“#”应作为字符串的开头或以空格开头。这个PHP解决方案看起来不错,但