我在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"
});
答案 0 :(得分:1)
首先,您可以使用match()
来简化代码:
var s = "/people/things/";
var match = s.match(/\/([^/]+)\/$/);
var things = match[1]; // "things"
关于ILLEGAL
错误,那是因为您忘记转义字符串中的\
。因此,请使用\things\stuff\
。
\\things\\stuff\\
现在,转到您的parse
功能。一般的想法是正确的,但你有一些实现错误:
break
(\\
的{{1}}部分),else
就会离开循环;否则,您只需跳过if
,添加所有其他字符; \
。a += str[i]
a = str[i] + a
应以i
开头,而不是a.length - 1
。这是最终版本:
a.length
<强> DEMO 强>