使用jQuery在String中找到的第一个数字字符串

时间:2012-11-06 15:26:51

标签: jquery string frontend

从第一个找到的数字中分割jQuery中的字符串的最佳方法是什么。

示例:Speelhof(STE) 0 /W301

我想将字符串拆分为2部分(拆分必须发生在第一个找到的数字上)

结果应该是2部分: Speelhof(STE)0 /W301

字符串可能因数字不同而不同,所以我需要一种从任意数字子串的方法...

任何人都可以帮助我吗?谢谢!

3 个答案:

答案 0 :(得分:2)

您不希望.split,因为它会使用分隔符。您可以将.match与正则表达式一起使用:

"Speelhof(STE) 0 /W301".match(/^(\D+)(.*)$/);

这将给出一个包含三个元素的数组:字符串本身,匹配\D+(一个或多个非数字)和.*(其余部分)的部分。所以你可以用它作为:

var arr = "Speelhof(STE) 0 /W301".match(/^(\D+)(.*)$/);
var first = arr[1];   // "Speelhof(STE) "
var second = arr[2];  // "0 /W301"

答案 1 :(得分:1)

这个问题是正则表达式的理想选择:

var match = "Speelhof(STE) 0 /W301".match(/^(.+)(\d.+)$/);

然后,您可以将这两个组件作为返回数组的元素进行访问:match[1]match[2]

这里没有必要使用jQuery。

解释模式的工作原理:^表示字符串的开头; (.+)表示任何字符(+)中的一个或多个(.),并且括号捕获此组并允许您在返回的数组中访问它。第二组包含一个数字\d,后跟一个或多个任何字符.+,就像第一组中一样。 $表示字符串的结尾。

答案 2 :(得分:1)

假设你提到的字符串中有数字。您可以浏览字符串并找到第一个数字作为字符串的分割点。

<强> Live Demo

str = "Speelhof(STE) 0 /W301";

for(i=0; i < str.length; i++)
{    
    if(parseInt(str[i]) >= 0  && parseInt(str[i]) <= 9)
          break;                        
}       

firstPart = str.substring(0, i);
secondPart = str.substring(i+1, str.length);