通过JavaScript或JQuery在DESC或ASC之前获取子字符串

时间:2012-08-15 21:07:40

标签: javascript jquery regex

我有一些像这样的网址

/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 个答案:

答案 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];
    }