草庐IT

javascript - 我需要在正则表达式中转义破折号吗?

这个问题在这里已经有了答案:Regex-Shouldhyphensbeescaped?[duplicate](3个答案)关闭6年前。我正在尝试理解短划线字符-需要在正则表达式中使用反斜杠进行转义吗?考虑一下:varurl='/user/1234-username';varpattern=/\/(\d+)\-/;varmatch=pattern.exec(url);varid=match[1];//1234正如您在上面的正则表达式中看到的,我正在尝试从url中提取id的数量。我还使用反斜杠\在我的正则表达式中转义了-字符。但是当我删除那个反斜杠时,仍然一切正常......!换句话说,这两

JavaScript 正则表达式,在哪里使用转义字符?

正则表达式允许以下字符:字母数字、空格、'-'、'_'、'&'、'()'和'/'这是表达式[\s\/\)\(\w&-]我已经在各种在线测试仪上测试过它并且知道它可以工作,但我无法让它在代码中正常工作。我尝试任何操作都会遇到系统错误。有什么建议吗?varprogramProductRegex=newRegExp([\s\/\)\(\w&-]); 最佳答案 您可以使用正则表达式语法:varprogramProductRegex=/[\s\/\)\(\w&-]/;您使用正斜杠来分隔正则表达式模式。如果您使用RegExp对象构造函数,则需要

javascript - 正则表达式在方括号之间抓取字符串

我有以下字符串:pass[1][2011-08-21][total_passes]如何将方括号之间的项目提取到数组中?我试过了匹配(/\[(.*?)\]/);vars='pass[1][2011-08-21][total_passes]';varresult=s.match(/\[(.*?)\]/);console.log(result);但这只会返回[1]。不确定如何执行此操作。提前致谢。 最佳答案 你快到了,你只需要一个globalmatch(注意/g标志):match(/\[(.*?)\]/g);示例:http://jsfid

javascript正则表达式只返回字母

我的字符串可以是A01、B02、C03,将来也可能是AA18。我想我可以使用正则表达式来获取字母并处理我的正则表达式,因为我没有对它做太多。我写了这个函数:functionrowOffset(sequence){console.log(sequence);varmatches=/^[a-zA-Z]+$/.exec(sequence);console.log(matches);varletter=matches[0].toUpperCase();returnletter;}varx="A01";console.log(rowOffset(x));我的匹配项仍然为空。我这样做正确吗?看着这

javascript - 如何正确转义正则表达式中的字符

我想在字符串中进行字符串搜索。只需说MySTR.search(Needle)。当此needle字符串包含特殊的正则表达式字符(如*、+等)时,就会出现问题。它因错误invalidquantifier而失败。我浏览了网页,发现字符串可以用\Qsomestring\E进行转义。但是,这并不总能产生所需的行为。例如:varsNeedle='*Stars!*';varsMySTR='Thecontentsofthisstringhavenoimportance';sMySTR.search('\Q'+sNeedle+'\E');结果为-1。好的。varsNeedle='**Stars!**';

javascript - 荷兰邮政编码的正则表达式

我正在尝试在javascript中构建一个正则表达式来验证荷兰邮政编码。邮政编码应包含4个数字,然后是可选的空格,然后是2个(不区分大小写)字母有效值:1001aa1001Aa1001AA我现在有这个,但它不起作用:varrege=/^([0-9]{4}[]+[a-zA-Z]{2})$/; 最佳答案 经过编辑以处理荷兰邮政编码无前导0的要求,并消除了SS、SA和SD的匹配项。这应该为您完成所有工作。最终正则表达式:varrege=/^[1-9][0-9]{3}?(?!sa|sd|ss)[a-z]{2}$/i;fiddle单元测试:h

JavaScript 和正则表达式 : literal syntax Vs. RegExp 对象

我在处理这个小的JavaScript代码时遇到了一些麻烦:vartext="ZTestYeah!Z";//Withliteralsyntax,itreturnstrue:good!alert(/(Z[\s\S]*?Z)/g.test(text));//ButnotwiththeRegExpobjectO_ovarreg=newRegExp('Z[\s\S]*?Z','g');alert(reg.test(text));我不明白为什么文字语法和RegExp对象不给我相同的结果...问题是我必须使用RegExp对象,因为稍后我会有一些变量。有什么想法吗?提前致谢:)

javascript - 向现有正则表达式添加修饰符

我有一堆正则表达式,比如较低=/[a-z]/稍后在我的程序中我需要将其用作/[a-z]/gIE。我需要稍后添加“全局”修饰符。那么如何给已有的正则表达式添加修饰符呢? 最佳答案 使用正则表达式source和flags将正则表达式与标志分开。然后使用该字符串创建一个新字符串并设置所需的标志。varre=/^[a-z]*$/;varre2=newRegExp(re.source,re.flags+"i");console.log(re.test("abc"))console.log(re.test("ABC"))console.log(

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有效性。未闭合的标记将保持简单文本。 最佳答案 您可以在*或+之后使用?使其变得不贪婪,例如(.*?)