我有一些像这样的网址
/WebSite/Movies/807?sort=MovieName&sortdir=DESC&p2=2&p3=3
/WebSite/Movies/807?sort=MovieName&sortdir=ASC&p4=4&p5=5
我只需要像
一样/WebSite/Movies/807?sort=MovieName&sortdir=DESC
/WebSite/Movies/807?sort=MovieName&sortdir=ASC
如何通过 JavaScript Regex或JQuery 完成?
我知道有一些在线工具,如http://regexpal.com/等,但我无法弄清楚如何确定字符串以DESC或ASC结尾。
谢谢!
答案 0 :(得分:4)
你可以用子串
来做var sub = "";
if (string.indexOf("DESC") !== -1) {
sub = string.substring(0, string.indexOf("DESC") + 4);
}
else if (string.indexOf("ASC") !== -1) {
sub = string.substring(0, string.indexOf("ASC") + 3);
}
alert(sub);
答案 1 :(得分:1)
这是一个正则表达式模式,可以通过desc或asc匹配任何内容:
.+[(DESC)(ASC)]
答案 2 :(得分:1)
尝试使用this(仅使用JavaScript和jQuery)):
/.*(DESC|ASC).*/g
看看小组(#2有你要找的东西)
<input id="Link" value="/WebSite/Movies/807?sort=MovieName&sortdir=DESC&p2=2&p3=3" style="width: 90%;" />
<br />
<button onclick="getOrder();">Get Order</button>
<script>
getOrder = function() {
var url = $('#Link').val()
, regex= /.*(DESC|ASC).*/g
, match = regex.exec(url);
alert(match[1]);
}
</script>
答案 3 :(得分:1)
我认为这已经得到了解答,但这是我用的所有时间,我将与你分享。如果您要查找的查询字符串(“key”)不存在,它将返回您在“default_”中放置的值。否则返回“key”的值。
我不记得我从哪里得到它。我从某个地方捡起它并进行了一些温和的改进。
getQuerystring = function(key, default_){
if (default_==null) default_="";
key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
var qs = regex.exec(window.location.href);
if(qs == null)
return default_;
else
return qs[1];
}