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

时间:2011-11-06 22:50:59

标签: javascript jquery

我有三个案例:

1)当字符串看起来像/televisions?3dtv=true时 - 我需要从中删除?3dtv=true

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

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

我猜数字2和3是相同的。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

不幸的是,lastIndexOf仅在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 :(得分:2)

您可以使用子串的组合lastIndexOf。

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

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