Javascript 正则表达式任意数字中间字符串
我正在使用javascript快速验证一个可以产生多种结果的特定url,我正在尝试使用正则表达式来实现这一点Javascript 正则表达式任意数字中间字符串,javascript,jquery,regex,Javascript,Jquery,Regex,我正在使用javascript快速验证一个可以产生多种结果的特定url,我正在尝试使用正则表达式来实现这一点 var regexNum = new RegExp("[0-9]"); var x = checkPage(); // returns: "/appl/coursemenu/chapter/ (a number here) /" switch(x){ case "/appl/coursemenu/chapter/"+regexNum+"/": chapter
var regexNum = new RegExp("[0-9]");
var x = checkPage();
// returns: "/appl/coursemenu/chapter/ (a number here) /"
switch(x){
case "/appl/coursemenu/chapter/"+regexNum+"/":
chapter();
break;
}
所以基本的想法是,它是那个特定的url,但它必须在最后有一个数字。(及a/)
谢谢
[编辑]
我添加了一个JSFIDLE来显示我的代码中到底出了什么问题:如果我理解正确,您需要在末尾添加一个数字(数字的组合),后跟一个斜杠:
"/appl/coursemenu/chapter/123/".test(/\d+\/$/) --> true (123/)
正则表达式:/\d+\/$/
$
与行尾匹配。
\/
与/
\d+
匹配0
或99999
等。如果您想保留开关
语句,另一个疯狂的想法是:
switch (true) {
case /appl\/coursemenu\/chapter\/\d+\/$/.test(x):
chapter();
break;
...
}
那么问题出在哪里呢?@PratikJoshi添加了一个JSFiddle来显示发生了什么,它需要检查regexNum变量所在的任何一组数字,范围可能从0到99999。如果您正确地告诉您要给出什么输入,以及您想要什么输出,那么一切都是混乱和不清楚的。@PratikJoshi,函数checkPage();返回一个以“/appl/coursemenu/chapter/”开头的字符串,然后是任意一组数字,然后是另一个“/”(例如:“/appl/coursemenu/chapter/16/”),我只需要开关大小写就可以返回true并运行chapter();当它得到一个像我上面给出的例子那样的字符串时,为什么必须有一个尾随斜杠?至少它应该是可选的:
\d+\/?$
。它很接近,但数字可以是任何一组数字,范围可以是0到99999@Paradoxis据此编辑了我的答案。
switch (true) {
case /appl\/coursemenu\/chapter\/\d+\/$/.test(x):
chapter();
break;
...
}