草庐IT

javascript - 为什么 "g"修饰符在两次调用 test() 时给出不同的结果?

这个问题在这里已经有了答案:WhydoesaRegExpwithglobalflaggivewrongresults?(7个答案)关闭4年前。给定这段代码:varreg=/a/g;console.log(reg.test("a"));console.log(reg.test("a"));我得到这个结果:truefalse我不知道这是怎么发生的。我已经在Node.js(v8)和Firefox浏览器中进行了测试。

javascript - 正则表达式计算正则表达式中捕获组的数量

我需要一个正则表达式来检查任意正则表达式(作为字符串),返回捕获组的数量。到目前为止我已经...arbitrary_regex.toString().match(/\((|[^?].*?)\)/g).length这适用于某些情况,假设任何以问号开头的组都是非捕获的。它还计算空组。它不适用于包含在字符类中的括号,或转义的括号,以及可能的其他一些情况。 最佳答案 修改你的正则表达式,让它匹配一个空字符串,然后匹配一个空字符串,看看它返回了多少组:varnum_groups=(newRegExp(regex.toString()+'|')

javascript - 有没有办法在 JavaScript 中对正则表达式使用非贪婪匹配?

我想知道是否有一种方法可以在JavaScript中使用非贪婪匹配?我尝试了U修饰符,但它似乎不起作用。我想用JavaScript编写一个小型BBCode解析器,但如果没有非贪婪匹配,就不可能(至少在我看来)做这样的事情:'[b]one[/b]two[b]three[/b]'.replace(/\[b\](.*)\[\/b\]/,'$1');但是这样的替换会很好,因为那时不需要检查HTML有效性。未闭合的标记将保持简单文本。 最佳答案 您可以在*或+之后使用?使其变得不贪婪,例如(.*?)

javascript - 使用 "new RegExp"和使用正斜杠符号创建正则表达式有什么区别?

使用newRegExp("regex");和/same_regex/来测试目标字符串有什么区别吗?我问这个问题是因为我在使用这两种方法时得到了不同的验证结果。这是我用来验证电子邮件字段的片段:varemail="didxga@gmail.comblah@foo.com";varregex1=newRegExp("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$");v

javascript - 正则表达式, "just group, don' t capture”,好像不行

x="abcdefg"x=x.match(/ab(?:cd)ef/)x不应该是abef吗?不是,其实是abcdef为什么我的?:没有任何效果?(当然我的理解很可能是错误的) 最佳答案 (?:...)仍然匹配,它只是没有为\1创建一个新组/$1/.groups(1)/等等 关于javascript-正则表达式,"justgroup,don'tcapture”,好像不行,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

javascript - 使用 $0 来引用 Javascript 的 String.replace 中的整个匹配项

我在一组文本中突出显示搜索字符串的实例。我想在替换查询的不区分大小写的匹配项时保留原始文本的大小写。这是我的开头:text.replace(newRegExp('('+query+')','ig'),'$1');在这种情况下,我需要转义query以防止括号破坏子匹配,所以我想我会尝试:text.replace(newRegExp(query,'ig'),'$0');但是$0似乎没有被使用——所有匹配的字符串都被替换为$0。但是,我确实找到了替代方案:text.replace(newRegExp(query,'ig'),function(match){return''+match+'';

javascript - jquery 的 AM PM 时间格式的正则表达式

我对屏蔽输入字段的正则表达式感到沮丧。我想将输入限制为hh:mmAM|PM格式,但我无法使用此正则表达式。我将此正则表达式与来自www.ThimbleOpenSource.com的jquery工具结合使用。它是filter_input.js工具或其他工具。它似乎适用于一个简单的正则表达式,但我想出的那个似乎不起作用。下面是我的jsFiddle测试链接。jsFiddle 最佳答案 我做了一个jsfiddle例子,基于vonYuri的答案的正则表达式:http://jsfiddle.net/Evaqk/$('#test1,#test2'

javascript - JS Regex 查找几个 a 标签的 href

我需要一个正则表达式来从这些a标签中找到hrefs的内容:delete只是url,不是href/标签。我在这里解析纯文本ajax请求,所以我需要一个正则表达式。 最佳答案 你可以试试这个正则表达式:/href="([^\'\"]+)/g示例位于:http://regexr.com?333d1更新:或通过非贪婪方法更容易:/href="(.*?)"/g 关于javascript-JSRegex查找几个a标签的href,我们在StackOverflow上找到一个类似的问题:

javascript - 允许数字、空格、加号、连字符和括号的正则表达式

我正在使用jquery验证器,我在其中添加了一个方法来验证只允许数字、空格、加号、连字符和括号的字符串。号码在字符串中是强制性的,但其他承租人是可选的。我在jqueryvalidor中添加方法的代码:jQuery.validator.addMethod("regex",function(value,element,regexp){varre=newRegExp(regexp);returnthis.optional(element)||re.test(value);},"Pleasecheckyourinput.");规则代码如下:rules:{myfield:{required:tr

javascript - 如何在页面加载时使用 jQuery 将 youtube 视频 url 转换为 iframe 嵌入代码?

我有一个所见即所得的文本区域,有时用户可能会在框中输入一个youtubeurl。在服务器端,有html过滤器以防止保存“有害”代码。因此,我只想保持服务器代码不变,并运行一个jQuery文档就绪事件,该事件在文本block中搜索YouTube链接,并将其转换为iframe嵌入代码。我想它会是基于正则表达式的,但我对正则表达式非常讨厌(在某些时候,我真的需要坐下来研究它们)。两种类型的YouTube链接:http://www.youtube.com/watch?v=t-ZRX8984sc或http://youtu.be/t-ZRX8984sc 最佳答案