1

我有一些这样的网址

/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 结尾。

谢谢!

4

4 回答 4

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);
于 2012-08-15T21:12:41.920 回答
1

这是一个正则表达式模式,它将通过 desc 或 asc 匹配任何内容:

    .+[(DESC)(ASC)]
于 2012-08-15T21:15:04.010 回答
1

试试这个(使用 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>
于 2012-08-15T21:17:47.737 回答
1

我想这已经得到了回答,但这是我一直使用的一个 fn,我将与你分享。如果您要查找的查询字符串(“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];
    }
于 2012-08-15T21:44:44.630 回答