草庐IT

Javascript/正则表达式 : Lookbehind Assertion is causing a "Invalid group" error

我正在做一个简单的LookbehindAssertion来获取URL的一部分(下面的示例),但我没有获得匹配,而是收到以下错误:UncaughtSyntaxError:Invalidregularexpression:/(?这是我正在运行的脚本:varurl=window.location.toString();url==http://my.domain.com/index.php/#!/write-stuff/something-else//lookbehindtoonlymatchthesegmentafterthehash-bang.varregex=/(?结果应该是write-

javascript - 正则表达式在 url 中查找 id

我有以下网址:http://example.com/product/1/something/another-thing虽然也可以是:http://test.example.com/product/1/something/another-thing或http://completelydifferentdomain.tdl/product/1/something/another-thing我想使用Javascript从URL中获取数字1(id)。唯一永远相同的是/product。但是我还有一些其他页面,其中url中也有/product,只是不在路径的开头。正则表达式会是什么样子?

javascript - JSLint 正则表达式违规问题

我有以下正则表达式/\([^\/我看到未转义的这个正则表达式被分配给一个变量,并在整个文件中使用。它在nodejs模块中。这是绕过不符合标准的OAUth响应的黑客攻击,将在未来的某个时候修复。我不想引入XML解析器作为解决问题的额外依赖项。我在JSHint和node-jslint中都看到了这种违规行为。您可以在github上查看该文件的完整源代码JSHint的准确输出如下:lib/oauth-helper.js:line5,col21,Unexpectedescapedcharacter' 最佳答案 没有必要对正则表达式中的“

带有 .test() 的 Javascript 正则表达式

>varp=/abc/gi;>vars="abc";>p.test(s);true>p.test(s);false;当我在Chrome的控制台上运行此代码时,上面有此输出。每次调用'.test()'时,我都会得到不同的值。有人可以向我解释为什么会这样吗?谢谢 最佳答案 该行为是由于“g”修饰符,即匹配三次,第四次不匹配:>varp=/a/gi;>vars="aaa";>p.test(s)true>p.test(s)true>p.test(s)true>p.test(s)false查看类似问题:WhyRegExpwithglobalf

Javascript 正则表达式再次捕获

好的,我想我需要重新发布我最初的问题:JavascriptRegexgroupmultiple有一个完整的例子。我有:vartext=""+""+""+""+""+""+""+""+"";varregex=//m;varmatch=regex.exec(text);console.log(match)console.log的输出是:问题是我只得到第一个结果......不是另一个……我该怎么做才能捕获并遍历所有匹配的东西? 最佳答案 exec一次只返回一个结果,并将指针设置为该匹配的末尾。因此,如果您想获得所有匹配项,请使用while

javascript - 替换 unicode 空格字符

我需要替换here上定义的unicode字符到目前为止我已经知道了,但它似乎删除了所有空间,包括标准空格键:varstr="Hellothisisatest ofthesite";str=str.replace(/[\u00A0\u1680​\u180e\u2000-\u2009\u200a​\u200b​\u202f\u205f​\u3000]/g,'')结果-Hellothisisatestofthesite我只想删除字符串中'test'和'of'之间的U+2003unicode字符。 最佳答案 删除模式中第一个的常规空格:st

javascript - 不得在字符范围内使用 Intellij IDEA 正则表达式字符类

IDEA不允许出现这种错误,而且我还没有找到关闭此类错误的选项。有谁知道如何修复错误或关闭警告。javascript工作正常,只有IDEA认为这是一个问题 最佳答案 您正在使用字符类中间的连字符(-)创建一个范围。你应该把它移到两端。另外,请注意您不需要转义字符类中的正则表达式元字符。他们在那里失去了意义。所以,只需使用:[-\w._+%] 关于javascript-不得在字符范围内使用IntellijIDEA正则表达式字符类,我们在StackOverflow上找到一个类似的问题:

javascript - 替换 'NO-BREAK SPACE' 的正则表达式

我正在寻找一个正则表达式来替换字符串中的“NO-BREAKSPACE”。关于SO有一些与“NO-BREAKSPACE”相关的问题,但似乎没有人指出正确答案。到目前为止,我尝试使用(字符串“AB”的第二个字符是不间断空格)但没有成功:"A B".replace(newRegExp(String.fromCharCode(160),"g"),"xxx");"A B".replace($(' ').text(),'xxx');"A B".replace(/\xA0/,'xxx');"A B".replace(/\\xA0/,'xxx');"A B".replace(/\u00A0/

javascript - 为什么 (new RegExp ("\\w") ===/\w/) 在 JS 中是假的?

我在Chrome的控制台中尝试了以下操作:varr1=newRegExp("\\w");//→/\w/varr2=/\w/;//→/\w/r1===r2;//→falser1==r2;//→falser1.toString()===r2.toString();//→truer1.source===r2.source;//→true我不明白为什么会那样。 最佳答案 它们是两个不同的RegExp实例,因此通过直接将它们与==或===进行比较,您正在比较两个不相等的引用,导致false。但是当您比较它们的toString()序列化或它们的

javascript - 判断一个字符串是否为 "empty"

我需要一个JavaScript函数来告诉我字符串对象是否为空。“空”,我的意思是它不仅仅是空白字符。我写了这个原型(prototype):String.prototype.isEmpty=function(){returnthis.length===0||this===""||this.test(/^\s*$/);}这样可以吗?是否有性能更高的版本? 最佳答案 使用String.prototype.isEmpty=function(){if(!this.match(/\S/)){return('entersomevalidinput