2014-10-05 69 views
0

如果我们有一个字符串,说如何识别使用JS的字符串中的数字?

'1, 2, 3, 4' 
'1, 2, 3 GO!' 
'ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!' 

然后我怎么承认其具有数字和返回true?

我需要它,因为同时使用,

if(input == input.toUpperCase()) 

如果输入数字,这种情况下返回true,所以需要添加一种优雅的方式为从通过此条件下停止编号。

编辑1:字符串确实是用逗号分隔的,我已经用google的方式将非逗号分隔的字符串识别为数字。

Edit2:增加了更多我需要通过的例子。

+1

'警报('(1,2,3,4)的搜索(/ \ d /)== -1。!);' – Cheery 2014-10-05 18:39:15

+0

不正则表达式符合你的要求?你还需要什么其他的字符串来解析? – Brad 2014-10-05 18:39:30

+0

@Brad正则表达式是我的最后手段,所有字母,特殊字符和变音符号。 – 2014-10-05 18:42:29

回答

1

Regular expressions这是适当的:

var str = "(1, 2, 3, 4)"; 
var containsNumber = /\d/.test(str);  // true 

这里,\d是一个正则表达式,如果你的字符串包含的任何地方的一个数字,将匹配。


好吧,看来你需要寻找的小写字母......如果有任何小写字母不应该被视为大喊大叫

var str = "(1, 2, 3, 4)"; 
var containsLowercaseLetters = /[a-z]/.test(str);  // false 

虽然这只适用于拉丁字母。在你的情况下,它可能是简单的,只是状态:

var isYelling = (input == input.toUpperCase()) && (input != input.toLowerCase()); 
+0

好吧,虽然它只与数字一起工作,但我还需要检查是否有与他们的字母表,然后它必须通过测试失败。 – 2014-10-05 18:50:29

+0

@PrakashWadhwani用适当的测试用例更新您的问题。 – Brad 2014-10-05 18:53:36

+0

@Brad已经完成。 – 2014-10-05 18:55:08