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

时间:2010-08-26 00:18:44

标签: javascript jquery string

我有一个字符串:

text-345-3535

数字可以改变。 如何从中获取两个数字并将其存储到两个变量中?

5 个答案:

答案 0 :(得分:6)

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});

答案 1 :(得分:3)

var m = "text-345-3535".match(/.*?-(\d+)-(\d+)/);

m [1]将保持“345”而m [2]将具有“3535”

答案 2 :(得分:2)

如果你不习惯正则表达式,那么@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];
}

如果数字恰好是三位数后跟一个短划线后跟四位数字,则会提取数字。可以通过多种方式修改表达式,以准确检索您所追求的字符串。

答案 3 :(得分:2)

试试这个,     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]);    
    }

感谢。

答案 4 :(得分:2)

另一种方法(使用String tokenizer)。

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] =&gt;文字
单词[1] =&gt; 345个
单词[2] =&gt; 3535