代码之家  ›  专栏  ›  技术社区  ›  Alex

javascript-从字符串中获取两个数字

  •  7
  • Alex  · 技术社区  · 15 年前

    text-345-3535
    

    如何从中得到这两个数字并将其存储到两个变量中?

    5 回复  |  直到 15 年前
        1
  •  6
  •   user113716    15 年前
    var str = "text-345-3535"
    
    var arr = str.split(/-/g).slice(1);
    

    试一试: http://jsfiddle.net/BZgUt/

    这将为您提供一个包含最后两个数字集的数组。

    var first = arr[0];
    var second = arr[1];
    

    试一试: http://jsfiddle.net/BZgUt/1/


    只是为了好玩,这里有另一种方法。

    试一试: http://jsfiddle.net/BZgUt/2/

    var str = "text-345-3535",first,second;
    
    str.replace(/(\d+)-(\d+)$/,function(str,p1,p2) {first = p1;second = p2});
    
        2
  •  3
  •   Scott Evernden    15 年前
    var m = "text-345-3535".match(/.*?-(\d+)-(\d+)/);
    

    m[1]将保留“345”,m[2]将保留“3535”

        3
  •  2
  •   Andrew    15 年前

    如果您不习惯正则表达式,@patrick dw的答案可能更适合您,但这也应该适用:

    var strSource = "text-123-4567";
    var rxNumbers = /\b(\d{3})-(\d{4})\b/
    var arrMatches = rxNumbers.exec(strSource);
    var strFirstCluster, strSecondCluster;
    if (arrMatches) {
        strFirstCluster = arrMatches[1];
        strSecondCluster = arrMatches[2];
    }
    

    如果正好是三位数字后接一个破折号后接四位数字,这将提取数字。可以通过多种方式修改表达式,以便准确地检索所要查找的字符串。

        4
  •  2
  •   Nikhil Dinesh    14 年前

    var text=“text-123-4567”;

    if(text.match(/-([0-9]+)-([0-9]+)/)) {
            var x = Text.match(/([0-9]+)-([0-9]+)/);
                    alert(x[0]);
                    alert(x[1]);
                    alert(x[2]);    
        }
    

        5
  •  2
  •   Nikhil Dinesh    14 年前

    另一种方法(使用字符串标记器)。

    int idx=0; int tokenCount;
    String words[]=new String [500];
    String message="text-345-3535";
    StringTokenizer st=new StringTokenizer(message,"-");
    tokenCount=st.countTokens();
    System.out.println("Number of tokens = " + tokenCount);
    while (st.hasMoreTokens()) // is there stuff to get?
        {words[idx]=st.nextToken(); idx++;}
    for (idx=0;idx<tokenCount; idx++)
        {System.out.println(words[idx]);}
    }
    

    输出

    文字[0]=>文字
    单词[1]=>345
    字[2]=>3535