Javascript 不应该';这个正则表达式不工作吗?

Javascript 不应该';这个正则表达式不工作吗?,javascript,regex,Javascript,Regex,我想捕获任务,那么这个RegExp不应该工作吗 我抓取任何字母数字字符直到问号。。。并捕获它 您需要对正则表达式文本中的斜杠和创建正则表达式的字符串文本中的反斜杠进行转义: testString = "something://something/task?type=Checkin"; patt = new RegExp("something\/(\w*)\?"); match = patt.exec(testString); document.querySelector('#resultReg

我想捕获
任务
,那么这个RegExp不应该工作吗

我抓取任何字母数字字符直到问号。。。并捕获它


您需要对正则表达式文本中的斜杠和创建正则表达式的字符串文本中的反斜杠进行转义:

testString = "something://something/task?type=Checkin";

patt = new RegExp("something\/(\w*)\?");
match = patt.exec(testString);
document.querySelector('#resultRegexp').innerHTML = match[1];

我强烈推荐第一个版本,它更具可读性。

您需要在正则表达式文本中转义斜杠,并在创建正则表达式的字符串文本中转义反斜杠:

testString = "something://something/task?type=Checkin";

patt = new RegExp("something\/(\w*)\?");
match = patt.exec(testString);
document.querySelector('#resultRegexp').innerHTML = match[1];

我强烈推荐第一个版本,它更具可读性。

我认为这就足够了:
(\w*)\?
,因为/w不是由\w捕获的,只有?在字符串中,在目标字符串之后。

我认为这就足够了:
(\w*)\?
,因为/不是由\w捕获的,并且只有?在字符串中,在目标字符串之后。

这是您需要的:

var patt = /something\/(\w*)\?/g;
// or
var patt = new RegExp("something/(\\w*)\\?", 'g');
这就是您需要的:

var patt = /something\/(\w*)\?/g;
// or
var patt = new RegExp("something/(\\w*)\\?", 'g');

试试这个:
var pat=/something:\/\/(?:[^\/]+\/)+(\w+)(\w+=\w+)/

它可以匹配字符串,例如:

patt = new RegExp(".*/(\\w*)\\?");

试试这个:
var pat=/something:\/\/(?:[^\/]+\/)+(\w+)(\w+=\w+/

它可以匹配字符串,例如:

patt = new RegExp(".*/(\\w*)\\?");

似乎有和我一样的解决方法。这是在小提琴请编辑您的文章,把代码放在这里,如果可能的话。这是首选,因为a)如果外部网站不可用,并且你的大部分内容都在那里,你的问题就变得毫无意义;b) 它让人们离开这个网站只是为了看看你在问什么,并且c)它是不可搜索的,因为内容不在这里。至少在这里发布最相关的部分,然后使用“完整源代码可用”之类的链接。@KenWhite我同意,更新了我的帖子。似乎与@stevether有相同的解决方案。这是在小提琴请编辑您的文章,把代码放在这里,如果可能的话。这是首选,因为a)如果外部网站不可用,并且你的大部分内容都在那里,你的问题就变得毫无意义;b) 它让人们离开这个网站只是为了看看你在问什么,并且c)它是不可搜索的,因为内容不在这里。至少在这里发布最相关的部分,然后使用“完整源代码可用”之类的链接。@KenWhite我同意,更新了我的帖子。