Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要Js正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 需要Js正则表达式

Javascript 需要Js正则表达式,javascript,regex,Javascript,Regex,我在尝试编写一些正则表达式进行字符串比较时遇到了一个大问题。我已经试了两个多小时,失去了耐心。 简言之,我要做的是在cgid之后、行尾或下一个&之前获取以下字符串中的字母: #cgid=neu和#cgid=neu&start=2 我尝试过使用stringVar.match(“/&cgid=(.*?&/”),但它返回null 我还必须得到/后面的最后一个单词,如下字符串: "/s/SiteName/neu". 我知道这很容易,但我似乎太难学正则表达式了。\w++([^&]+) 首先,您在这里看到

我在尝试编写一些正则表达式进行字符串比较时遇到了一个大问题。我已经试了两个多小时,失去了耐心。 简言之,我要做的是在
cgid
之后、行尾或下一个
&
之前获取以下字符串中的字母:

#cgid=neu
#cgid=neu&start=2

我尝试过使用
stringVar.match(“/&cgid=(.*?&/”)
,但它返回
null

我还必须得到
/
后面的最后一个单词,如下字符串:

"/s/SiteName/neu".
我知道这很容易,但我似乎太难学正则表达式了。

\w++([^&]+)


首先,您在这里看到了这一点

为什么要显示带有
#cgid=…
的字符串,然后尝试将其与
&cgid=…
匹配?这毫无意义。根据“正则表达式”一词的定义,正则表达式是完全合乎逻辑的。这很简单:

stringVar.match(/\bcgid=([^&]+)/);
您所需的目标将位于阵列的
[1]
索引中

对于“在
/
之后的最后一个单词”部分,请尝试以下操作:

stringVar.split("/").pop();
请从以下位置尝试组1:

cgid=(.*?)(&.*)?

那是个打字错误,我忘了删除itOkay。在我的回答中,我用
\b
替换了
。这两种方法都很有效,第二种方法应该是显而易见的,但我太恼火了,不敢去想。作为一个附带问题,你花了多长时间学习正则表达式,你能推荐一些好的教程吗?这种傲慢的态度是怎么回事?当然,正则表达式是合乎逻辑的,但它们本身并不简单,因为它们被称为“正则”表达式。这里有很多复杂的正则表达式示例和很多容易出现误报或漏报的陷阱。我可以在互联网上找到很多用正则表达式解决的非琐碎任务的例子,它们变得非常复杂,所以当你在帮助有困难的人时,请克制自己的态度。@viktor我只是读了PHP的来学习basica regex语法,然后从那里开始。这将匹配许多不应该匹配的东西。@pguardiario,但它有两张赞成票。。。我想我会改正的:p