草庐IT

Javascript 正则表达式 - exec 无限循环

我正在尝试使用正则表达式获取链接文本。可能有几个链接可能与模式匹配,我想在第4个之前获得最远的链接。这是我的JS代码:varlevel=1;while(_match=/(.*)/img.exec(_html)){if(level问题是此代码在IE上进入无限循环(在FF上运行良好),尽管模式存在。感谢您的帮助。 最佳答案 RegExp.exec,我相信,利用了lastIndex属性并不断对其进行修改,以使“全局组捕获”之类的事情成为可能;为了让它工作,你需要有一个正则表达式。目前你在每次迭代中都创建一个新的,所以它不会工作......

Javascript正则表达式将点符号转换为括号符号

考虑这个javascript:varvalues={name:"JoeSmith",location:{city:"LosAngeles",state:"California"}}varstring="{name}iscurrentlyin{location.city},{location.state}";varout=string.replace(/{([\w\.]+)}/g,function(wholematch,firstmatch){returntypeofvalues[firstmatch]!=='undefined'?values[firstmatch]:wholematc

javascript - 用于匹配模式中前一组的正则表达式?

我似乎永远找不到关于将捕获组匹配为模式一部分的正则表达式的任何文档。例如:(\w\d\w):$1..应该匹配a4b:a4b$1不起作用,但我知道它是类似的东西。有人知道吗? 最佳答案 在正则表达式模式中,对第一个捕获组的反向引用始终是\1,而不是$1。原因:$在正则表达式中表示“字符串结尾”(或行结尾,取决于上下文)。在替换模式(不是正则表达式)中,一些方言允许$1(例如.NET、Java、Perl和JavaScript),一些允许\1(Python和Ruby),有些同时允许(PHP和JGSoft)。编辑:因为你写道你找不到任何关于

javascript - 正则表达式中 $1 和 $& 的区别

当我使用正则表达式时,我偶然发现了$&。如果我使用$1,我会得到与$&相同的结果。$&有什么特别之处,它在哪里记录?当我在duckduckgo或google上搜索“正则表达式+$&”时,我找不到任何相关的匹配项。在下面的示例中,可以使用$1或$&。$&有什么特别之处,它为什么存在?查看fiddle用例子Поехали!Let'sgo!Varianttranslations:Let'sride!Let'sdrive!Offwego!ОблетевЗемлювкорабле-спутнике,яувидел,какпрекраснанашапланета.Люди,будемхранить

javascript - 正则表达式将逗号分隔的 css 类名称字符串拆分为数组

我需要将CSS类名称字符串拆分为JavaScript中的CSS类名称数组。以下所有字符串应生成相同的数组。'lmn-button,lmn-button-primary'=>['lmn-button','lmn-button-primary']'lmn-button,lmn-button-primary'=>['lmn-button','lmn-button-primary']//Notethespaceaftercomma'lmn-button,lmn-button-primary'=>['lmn-button','lmn-button-primary']//Notethespaceb

javascript - 同一行上的正则表达式多个匹配项

我有以下JavaScript正则表达式用于http://regexpal.com/\[.*(\.jpg|\.png|\.gif|\.bmp|\.jpeg).*\]在jQuery代码中使用-post.html().match(/\[.*(\.jpg|\.png|\.gif|\.bmp|\.jpeg).*\]/g);这是我正在使用的示例数据[cid:image001.jpg@01CD2DC8.704399C0]s[cid:image001.png@01CD2DC8.704399C0]image.jpg[cid:image002.jpg@01CD2DC8.704399C0][cid:imag

javascript - 英国银行排序代码javascript正则表达式

我正在尝试在javascript中为英国银行分类代码创建正则表达式,以便用户可以输入6位数字,或6位数字对之间有一个连字符。例如“123456”或“12-34-56”。也不是所有的数字都可以为0。到目前为止,我有/(?!0{2}(-?0{2}){2})(\d{2}(-\d{2}){2})|(\d{6})/和这个jsFiddletotest.这是我的第一个正则表达式,所以我不确定自己是否做对了。对6个0位数字的测试应该会失败,我认为前瞻中的-?可选连字符会导致它将其视为与带有连字符的6个0位数字相同,但事实并非如此。如果我做的完全不正确,我会很感激一些帮助和任何批评!

javascript - 如何在 JavaScript 的正则表达式中包含内联注释

这个问题在这里已经有了答案:CommentingRegularExpressions(6个答案)关闭3年前。当字符串传递给RegExp构造函数时,内联注释起作用:RegExp("foo"/*bar*/).test("foo")但不是用表达式。JavaScript中是否有任何等效项或替代项来模拟x-mode对于RegExp对象?

Javascript——仅获取正则表达式匹配的可变部分

给出:varregexp=newRegExp("","g");在javascript中,将变量分配给与.*匹配的任何内容的最简单方法是什么?我可以这样做,但是有点难看:myString.match(regexp).replace("",""); 最佳答案 JavaScript应该在正则表达式匹配时返回一个数组对象,其中数组的零索引是匹配的整个字符串,后面的索引是捕获组。在您的情况下,类似于:varmyVar=regexp.exec(myString)[1];应将(.*?)捕获组的值分配给myVar。

javascript - 将新行转换为段落/br HTML 标记,这可以是单个正则表达式吗?

我正在开发的一个应用程序让用户以明文形式输入内容,这些内容稍后将显示为HTML。为了让用户的内容尽可能的好看,我们对内容进行如下改造:由两个或多个换行符分隔的任何文本block都包含在标记中。新行字符(以及中间的任何空格)被删除。任何单个换行符(以及周围的空格)都被标记替换。我目前通过将文本放入两个正则表达式替换来实现这一点,但想知道是否可以将其合并为一个。这是我现在拥有的(JavaScript)://contentholdsthetexttoprocesscontent=''+content.replace(/\n([\t]*\n)+/g,'').replace(/\n/g,'')+