Javascript jquery url字符串操作和字符删除

Javascript jquery url字符串操作和字符删除,javascript,jquery,Javascript,Jquery,我有三个案例: 1) 当字符串看起来像这样时,我需要从中删除?3dtv=true 2) 当字符串看起来像这样时,/televisions?3dtv=true&brand=panasonic-我需要从中删除&brand=panasonic 3) 当字符串看起来像这样时/televisions?3dtv=true&brand=panasonic&led=true-我需要删除最后的所有内容&包括&so-&led=true 我想2号和3号是一样的 任何帮助都将不胜感激 您可以使用子字符串a lastIn

我有三个案例:

1) 当字符串看起来像这样时,我需要从中删除
?3dtv=true

2) 当字符串看起来像这样时,
/televisions?3dtv=true&brand=panasonic
-我需要从中删除
&brand=panasonic

3) 当字符串看起来像这样时/televisions?3dtv=true&brand=panasonic&led=true-我需要删除最后的所有内容&包括&so-
&led=true

我想2号和3号是一样的


任何帮助都将不胜感激

您可以使用子字符串a lastIndexOf的组合

var str = "/televisions?brand=panasonic?3dtv=true";
var newstr = str.substring(0, str.lastIndexOf('?'));

请注意,这只是JavaScript,不使用jquery库的任何方面。

您可以使用子字符串a lastIndexOf的组合

var str = "/televisions?brand=panasonic?3dtv=true";
var newstr = str.substring(0, str.lastIndexOf('?'));

请注意,这只是JavaScript,不使用jQuery库的任何方面。

不幸的是,<代码> ListTimeXOF/<代码>只支持IE9,因此您可以考虑正则表达式:

var href = $(obj).next().attr('href').replace(/(?:&[^&]*|\?[^?]*)$/, '');
我根据新的要求相应地更新了答案。表达式将替换上一个
&
的所有内容,如果没有,则替换
的所有内容。由于交替从左到右进行评估,因此可以保证如果存在
&…
,则会进行替换

解释如下:

/                 # start expression
  (?:             # open non-capturing group
      &           # match & literally
      [^&]*       # match any character but & as often as possible
      |           # OR
      \?          # match ? literally
      [^?]*       # match any character but ? as often as possible
  )               # close group
  $               # match the end of the string
/                 # end expression

<>遗憾的是,<>代码> ListTimeXOF只支持IE9,因此您可以考虑正则表达式:

var href = $(obj).next().attr('href').replace(/(?:&[^&]*|\?[^?]*)$/, '');
我根据新的要求相应地更新了答案。表达式将替换上一个
&
的所有内容,如果没有,则替换
的所有内容。由于交替从左到右进行评估,因此可以保证如果存在
&…
,则会进行替换

解释如下:

/                 # start expression
  (?:             # open non-capturing group
      &           # match & literally
      [^&]*       # match any character but & as often as possible
      |           # OR
      \?          # match ? literally
      [^?]*       # match any character but ? as often as possible
  )               # close group
  $               # match the end of the string
/                 # end expression

+1为了得到支持,我没有意识到这一点。这个链接提到了它。我最近也发现了。。。。不幸的是,IE中从未支持所有好的函数;)(当然我有点夸张)不过我错过了一些东西。在我添加我的第一个?something=something它不做什么?s=s但它做了什么?something=something&s=s。在这种情况下,我需要删除&s=s,在第一种情况下,删除?something=something。我应该为这个问题创建一个新的问题吗?@bobek:我建议你编辑你的问题,并对其进行更详细的解释。因为我现在有点困惑,你想做什么。@bobek:更新了我的答案。。。请检查它是否符合您的需要。+1对于支持,我不知道。这个链接提到了它。我最近也发现了。。。。不幸的是,IE中从未支持所有好的函数;)(当然我有点夸张)不过我错过了一些东西。在我添加我的第一个?something=something它不做什么?s=s但它做了什么?something=something&s=s。在这种情况下,我需要删除&s=s,在第一种情况下,删除?something=something。我应该为这个问题创建一个新的问题吗?@bobek:我建议你编辑你的问题,并对其进行更详细的解释。因为我现在有点困惑,你想做什么。@bobek:更新了我的答案。。。请检查它是否适合您的需要。