2012-04-07 91 views
0

我仍然是新的正则表达式(我应该学习),我只需要JS正则表达式从这样的文本中提取字符串和数字:[number][string]JavaScript的正则表达式来提取文本和数字

(/^(\d+).(\s+)/?) 

请帮忙吗?

+0

你能表现出一定的'text'您需要从提取? – Engineer 2012-04-07 10:40:33

+0

一些例子123123K,333D。 – albanx 2012-04-07 10:50:46

回答

2

我认为你正在寻找“/\d+[a-z]+/gi”:

var x = "123123K, 333D".match(/\d+[a-z]+/gi); 
console.log(x)​; //["123123K", "333D"] 

UPDATEx是数组。可以遍历并提取号码和文字:

xitem.match(/\d+/)[0]  //number 
xitem.match(/[a-z]+/i)[0] //text 

PS:关于\s

匹配一个空白字符,这在ASCII是标签,换行, 进纸,回车,和空间;在Unicode中,也匹配 不间断空格,下一行和可变宽度空格(其他 之间)。

http://en.wikipedia.org/wiki/Regular_expression#Examples

+0

对不起工程师,我不清楚:例如,如果我有123123D我想提取123123和D – albanx 2012-04-07 11:32:31

+0

@albanx我已更新我的答案,检查它。 – Engineer 2012-04-07 11:49:37

+0

带有两个正则表达式的更新部分也会匹配“D123”和“1D1D1”等字符串......捕获两个有趣的部分更有意义:console.log(“123123K”.match(/(\ d +)([ AZ] +)/ GI));'。 – DCoder 2012-04-07 11:57:29

0

如果方括号在该行也然后执行以下操作:

/^\[(\d+)\]\[(\s+)\]$/ 

如果他们不

/^(\d+)(\s+)$/ 
+0

是不是,这只是例如,谢谢 – albanx 2012-04-07 10:51:35

+0

我想这个,但X结果为空:var x =“123123M”.match(/ ^(\ d +)(\ s +)$ /); \t \t console.log(x); – albanx 2012-04-07 10:57:03

+0

'\ s'用于匹配空格。 “123123M”没有空格。 – DCoder 2012-04-07 11:53:29