2014-11-14 145 views
2

我正在使用JavaScript从字段中获取字符串,该字段中通常会有;正则表达式问题 - 查找字符串中的数字

“WIDTH = 56虚空= 67”

我需要做的是找出两个数字可能是一个范围1-440之间,并把它们分成两个不同的领域,其是

场的关系1 =宽度 场2 =虚空

我看着正则表达式迄今让我找出一个数字是在使用搜索()方法在什么位置,但它并没有真正做什么,我需要

有没有人有建议吗?

+1

你有没有考虑过把它分成两个领域?这将更容易处理,并可能导致更少的用户输入错误。 – 2014-11-14 14:08:27

+0

一旦你从该字段获得数字,你可能不得不使用JS来验证它们的范围并将它们添加到字段中。正则表达式只是用于搜索字符串。 – 2014-11-14 14:10:56

回答

4

正则表达式的贪婪,所以你可以这样做:

var str = 'Width = 56 Void = 67'; 
    var a = str.match(/\d+/g); 

然后,你可以检查的值,看看他们是否匹配,如果他们在你的预计数的范围,因为现在是一个数组[ “56”,67" ];

+1

工作很好,谢谢,现在只是分割数组,并将两个值放入文本字​​段 – Sjharrison 2014-11-14 14:24:02

1

试试这个正则表达式:

Width = (\d+) Void = (\d+) 

你的JavaScript代码来分析该字符串应该是这样的:

var regex = /Width = (\d+) Void = (\d+)/; 
var match = regex.exec("Width = 56 Void = 67"); 
var field1 = parseInt(match[1], 10); // 56 
var field2 = parseInt(match[2], 10); // 67 

你会想添加一些错误检查,但这是必不可少的部分。

祝你好运!

+0

感谢您的回复!以前的答案做了什么要求,但我会稍后再测试一下,看看它是否有效,谢谢 – Sjharrison 2014-11-14 14:24:51

+0

感谢@罗伯特抓住我的错字 – 2014-11-14 14:29:45

相关问题