Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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和正则表达式调优-条带化字符串_Javascript_Regex - Fatal编程技术网

Javascript和正则表达式调优-条带化字符串

Javascript和正则表达式调优-条带化字符串,javascript,regex,Javascript,Regex,从URL: https://www.flightstats.com/v2/historical-flight/TP/1478/2020/11/3/1047614176 我需要获得“2020/11/3” 我所拥有的 正则表达式: 它返回:对于完全匹配-“8/2020/1/3”,对于组1-“2020/1/3”。我已经测试了几个组合,并试图简化它,直到这个版本 Javascript: 是initialurl变量 问题 javascript返回:“8/2020/11/32020/11/3”,我

从URL:

https://www.flightstats.com/v2/historical-flight/TP/1478/2020/11/3/1047614176
我需要获得
“2020/11/3”

我所拥有的

  • 正则表达式:
它返回:对于完全匹配-
“8/2020/1/3”
,对于组1-
“2020/1/3”
。我已经测试了几个组合,并试图简化它,直到这个版本

  • Javascript:
initialurl
变量

问题

javascript返回:
“8/2020/11/32020/11/3”
,我只需要/想要第1组匹配,或者如果完全匹配正确,就这样

上下文

  • Javascript新手
  • 我在Ui.Vision Kantu中使用这个

如果您的URL将可靠地采用所示格式,则可以:

\d{4}\/\d{1,2}\/\d{1,2}

var initialurl='1!'https://www.flightstats.com/v2/historical-flight/TP/1478/2020/11/3/1047614176';
var myRe=/\d{4}\/\d{1,2}\/\d{1,2}/;
var myArray=myRe.exec(initialurl);

log(myArray)如果您的URL将以所示格式可靠地显示,则可以这样做:

\d{4}\/\d{1,2}\/\d{1,2}

var initialurl='1!'https://www.flightstats.com/v2/historical-flight/TP/1478/2020/11/3/1047614176';
var myRe=/\d{4}\/\d{1,2}\/\d{1,2}/;
var myArray=myRe.exec(initialurl);

log(myArray)
Regexp-protips:如果您使用的是最新版本的JavaScript,您可以使用lookback来匹配第一个
\d/
,但不能将其包含在结果中。@WashingtonGuedes虽然有效,但这是一个效率极低的正则表达式。在regex101切换到PHP,您将看到执行它需要2622个步骤;平均时钟为2ms。Regexp-protips:如果您使用的是最新版本的JavaScript,您可以使用lookback来匹配第一个
\d/
,但不能将其包含在结果中。@WashingtonGuedes虽然有效,但这是一些非常低效的regex。在regex101切换到PHP,您将看到执行它需要2622个步骤;平均以2毫秒打卡。谢谢。工作得很有魅力。我使用“d{4}”进行了测试,但因为之前的数字有时也是4,所以它没有按预期工作。我还对月份部分使用“d{2}| d{1}”进行了测试,因为它可以有1或2个数字,但也不能100%工作。在你的帮助下,我学会了这句话:“d{1,2}”。@user1128912不客气。正如我在回答中提到的,这个正则表达式只有在你的URL被期望以那种精确的格式通过时才有用。因此,如果您有不同类型的预期URL,那么您应该添加它们的示例。URL结构与提供的一样:)谢谢。工作得很有魅力。我使用“d{4}”进行了测试,但因为之前的数字有时也是4,所以它没有按预期工作。我还对月份部分使用“d{2}| d{1}”进行了测试,因为它可以有1或2个数字,但也不能100%工作。在你的帮助下,我学会了这句话:“d{1,2}”。@user1128912不客气。正如我在回答中提到的,这个正则表达式只有在你的URL被期望以那种精确的格式通过时才有用。因此,如果您有不同类型的预期URL,那么您应该添加它们的示例。URL结构与提供的结构相同:)
\d{4}\/\d{1,2}\/\d{1,2}