我正在努力使用regExp。
我只是想将传入的URL解析为我的应用程序。
这是我目前的RegExp:
var regexp = new RegExp('/users','i');
"/users".test(regexp); //Should return true
"/users/".test(regexp); //should return true
"/users?variable1=xxx&variable2=yyy&variableN=zzzz".test(regexp); //Should return true
"/users/?variable1=xxx&variable2=yyy&variableN=zzzz".test(regexp); //should return true;
"/users?variable1=xxx&variable2=yyy&variableN=zzzz/10".test(regexp); //Should return false
"/users/?variable1=xxx&variable2=yyy&variableN=zzzz/10".test(regexp); //should return false;
"/users/10".test(regexp); //should return false
"/users/10/contracts".test(regexp); //Should return false
"/users/10/contracts/10".test(regexp); //Should return false
"/users/anythingElseThatIsNotAQuestionMark".test(regexp); //Should return false
有人有善意帮助我吗?
希望你度过愉快的夜晚。答案 0 :(得分:2)
答案 1 :(得分:1)
首先是RegExp.test(String)
然后这个正则表达式应该这样做:
/^\/users\/?(?:\?[^\/]+)?$/i
答案 2 :(得分:0)
/^\/users\/?(\?([^\/&=]+=[^\/&=]*&)*[^\/&=]+=[^\/&=]*)?$/i
应该有效,并确认查询有效:
var regexp = /^\/users\/?(\?([^\/&=]+=[^\/&=]*&)*[^\/&=]+=[^\/&=]*)?$/i;
function test(str) {
document.write(str + ": ");
document.write(regexp.test(str));
document.write("<br/>");
}
test("/users"); //should return true
test("/users/"); //should return true
test("/users?variable1=xxx&variable2=yyy&variableN=zzzz"); //should return true
test("/users/?variable1=xxx&variable2=yyy&variableN=zzzz"); //should return true
test("/users?variable1=xxx&variable2=yyy&variableN=zzzz/10"); //should return false
test("/users/?variable1=xxx&variable2=yyy&variableN=zzzz/10"); //should return false
test("/users/10"); //should return false
test("/users/10/contracts"); //should return false
test("/users/10/contracts/10"); //should return false
test("/users/anythingElseThatIsNotAQuestionMark"); //should return false
&#13;