1

我有一个cookie用值调用的 JavaScript 变量

__utma=43024181.64497201.1349454717.1349695569.1349702850.4; __utmz=43024181.1349679955.2.2.utmcsr=aerosoft-press.com|utmccn=(referral)|utmcmd=referral|utmcct=/; __utmc=43024181; __utmb=43024181.8.10.1349702850; language=de

现在我想切断language=de该字符串的一部分。我找到了一种从后面切入的方法:

cookie = cookie.substring(0,cookie.length-11); 

但我只需要相反的方式。有人可以帮忙吗?

4

3 回答 3

3

尝试使用这样的replace()方法:

cookie = cookie.replace(" language=de", "");

或者如果文本可能有所不同但字符数保持不变

cookie  = cookie.substring(0, s.length - 12)

其中 12 是要从字符串末尾删除的字符数

于 2012-10-08T13:51:25.477 回答
2

如果语言可以是任何东西(不仅仅是德),我会使用正则表达式:

cookie = cookie.replace(/language=[^;]+;?/, "");

基本上说language=<anything that is not a ;>什么都没有替换

于 2012-10-08T13:55:55.757 回答
1

目前未提供另外两个选项,第一个是使用indexOf()

var cookie = "__utma=43024181.64497201.1349454717.1349695569.1349702850.4;__utmz=43024181.1349679955.2.2.utmcsr=aerosoft-press.com|utmccn=referral)|utmcmd=referral|utmcct=/;__utmc=43024181; __utmb=43024181.8.10.1349702850; language=de",
    newCookie = cookie.substring(0,cookie.indexOf(' language'));
console.log(newCookie);

JS 小提琴演示

第二种用途lastIndexOf()

var cookie = "__utma=43024181.64497201.1349454717.1349695569.1349702850.4;__utmz=43024181.1349679955.2.2.utmcsr=aerosoft-press.com|utmccn=referral)|utmcmd=referral|utmcct=/;__utmc=43024181; __utmb=43024181.8.10.1349702850; language=de",
    // the '+ 1' in the following line assumes you want to keep the ';' character
    newCookie = cookie.substring(0,cookie.lastIndexOf(';') + 1);
console.log(newCookie);

JS 小提琴演示

参考:

于 2012-10-08T15:16:59.953 回答