从URL中查找子字符串

时间:2011-12-12 09:17:18

标签: javascript jquery substring

我有以下网址。

http://www.xyz.com/#tabname-1-12

我需要从此网址中拆分3个值:

  • tabName:#值但不想要-1-12)
  • 1:第一个" - "
  • 之后的第一个值
  • 12:第二个" - "
  • 后的第二个值

我该怎么做?

6 个答案:

答案 0 :(得分:2)

尝试下面的正则表达式

  #(.*)-(.*)-(.*)

DEMO

答案 1 :(得分:2)

我建议使用正则表达式和拆分。

HTML:

<div id='url'>http://www.xyz.com/#tabname-1-12</div>

使用Javascript:

$(function() {

    // set this to the element containing the actual URL
    var url = $('#url').html();


    // get tabname
    var tabname = url.match(/(#.+?)-/);
    tabname = tabname[1];

    // you can now use the var tabname, which contains #tabname

    var ids = url.split('-');


    var idone = ids[1];
    var idtwo = ids[2];

    // idone contains 1, idtwo contains 12.


});

如果您不想使用tabname前面的#,请使用var tabname = url.match(/#(.+?)-/);

工作示例: http://jsfiddle.net/QPxZX/

答案 2 :(得分:1)

在javascript中:

var url = 'http://www.xyz.com/#tabname-1-12';
// get values behind last slash
var threeValues = url.substring(url.lastIndexOf('/')).split('-'); 

var one = threeValues(0).substr(1); // get tabname
var two = threeValues(1);    
var three = threeValues(2);

答案 3 :(得分:0)

也许它可以帮到你。用#分割你的网址并取第二部分,然后用' - '分割,这样就得到一个像val = {'tabname','1,''12'}这样的数组。试试吧,或许更好的答案等着你。

答案 4 :(得分:0)

只需将字符串拆分两次,然后就可以访问最终数组中的值。

var input = "http://www.xyz.com/#tabname-1-12";
var after = input.split('#')[1]
var values = after.split('-');
document.write(values);

http://jsfiddle.net/infernalbadger/E2q8q/

答案 5 :(得分:0)

简单的方法是,

<html>
<body>
<script type="text/javascript">
     var str  = "http://www.xyz.com/#tabname-1-12";
     var val1 = str.substr(20,7);
     var val2 = str.substr(28,1);
     var val3 = str.substr(31,2);

function displayVal()
{
    alert("val1 = "+val1+"\nval2 = "+val2+"\nval3 = "+val3);
}
</script>

URL: http://www.xyz.com/#tabname-1-12;

<input type="button" name="btn" value="Click" onclick="displayVal()" />

</body>
</html>