var str = "hello:11-world:223-js:331";
怎样截取上述字符串其中的一段,比如匹配hello,则返回“hello:11”,匹配"world",返回"world:223"。谢谢。

解决方案 »

  1.   

    不知道是不是这个意思
    var str = "hello:11-world:223-js:331";
    var arr = str.match(/\b\w+\b\:\d+/g);
    alert(arr[0]);
    alert(arr[1]);
    alert(arr[2]);
      

  2.   


     <script type="text/javascript">
     var str = "hello:11-world:223-js:331";
     var p = prompt("输入你要匹配的内容");
     var regex = new RegExp( p + ":[0-9]{2,}");
     var arr = regex.exec(str);
     alert("你匹配到的字符串为:"+arr[0]);
    </script>
      

  3.   

    谢谢shen823797837,这样可以了。 var str = "hello:11adfafdvd-world:223-js:331";
     var p = prompt("输入你要匹配的内容");
     var regex = new RegExp( p + ":[0-9a-zA-Z]{2,}");
     var arr = regex.exec(str);
     alert("你匹配到的字符串为:"+arr[0]);
      

  4.   

     var str = "hello:1asf1-world:23423423-js:3234f23f31";
     var p = prompt("输入你要匹配的内容");
     var regex = new RegExp( p + ":[^-]*(?!-)");
     var arr = regex.exec(str);
     alert("你匹配到的字符串为:"+arr[0]);- 号前面的任意字符
      

  5.   

     var str = "hello:1asf1-world:23423423-js:3234f23f31";
     var p = prompt("输入你要匹配的内容");
     var regex = new RegExp( p + ":[^-]*(?!-)");
     var arr = regex.exec(str);
     alert("你匹配到的字符串为:"+arr[0]);- 号前面的任意非减号字符