如何从django中的url解析javascript字符串

时间:2012-09-06 21:52:46

标签: javascript html django url

我在javascript中有这个网址“/ people / things /”我想要一个只返回“东西”的功能我该怎么做?

我尝试过丑陋的东西。就像迭代一样,但是当我必须弄清楚如何删除字符串的其余部分并且它的渐慢速度非常慢时,我会陷入困境。

我一直在“非法”。超级烦人。

$(function() { 

    var parse = function(str) {

        var a = "";   
        if (str.length && str.length > 1) {

           str = str.slice(0, str.length -1);   //remove first

            for (var i = str.length; i > 1; i--) {
                if (str[i] !== '\\' ) {
                      a += str[i];
                    }

            }


        }

        return a;

    };   

       c = "\things\stuff\";
       alert(parse(c));        //result should be "things"                

});​

1 个答案:

答案 0 :(得分:1)

首先,您可以使用match()来简化代码:

var s = "/people/things/";
var match = s.match(/\/([^/]+)\/$/);
var things = match[1]; // "things"

关于ILLEGAL错误,那是因为您忘记转义字符串中的\。因此,请使用\things\stuff\

,而不是\\things\\stuff\\

现在,转到您的parse功能。一般的想法是正确的,但你有一些实现错误:

    一旦找到break\\的{​​{1}}部分),
  1. else就会离开循环;否则,您只需跳过if,添加所有其他字符;
  2. 您正在从后向开始遍历数组,并将每个字符添加到字符串中;因此,最后,你会得到一个颠倒的字符串。要解决此问题,请使用\
  3. ,而不是使用a += str[i]
  4. a = str[i] + a应以i开头,而不是a.length - 1
  5. 这是最终版本:

    a.length

    <强> DEMO