2009-08-22 64 views

回答

3

这里有一种方法,假设数总是用括号括:

var str = 'javascript:change(5);'; 
var lastBit = str.split('(')[1]; 
var num = lastBit.split(')')[0]; 
+2

谢谢。这很有道理。 非常感谢其他解决方案。 – 2009-08-22 22:17:29

+0

因为某个人太大而不是正则表达式的粉丝而放弃投票? – karim79 2009-08-22 22:17:51

+2

或者因为它不必要地复杂,不需要临时对象,而且问题规范很简单:“在这些不是数字的东西中找出数字”? '/(\ d +)/'是最简单的方法,'/ javascript:change \((\ d +)\); /'另外验证周围的数据是否处于预期的形式。 'split'过于聪明。 – hobbs 2009-08-22 22:41:33

1

使用regular expressions: -

var test = "javascript:change(5);" 
var number = new RegExp("\\d+", "g") 
var match = test.match(number); 

alert(match); 
1

一个简单的正则表达式可以解决这一个:

var inputString = 'javascript:change(5);'; 
var results = /javascript:change\((\d+)\)/.exec(inputString); 
if (results) 
{ 
    alert(results[1]); // 5 
} 

在比赛中使用javascript:change部分也可以确保如果t他的字符串格式不正确,你不会从比赛中获得价值。

+0

为什么downvote? – gnarf 2009-08-22 22:19:30

1
var str = 'javascript:change(5);', result = str.match(/\((\d+)\)/); 

if (result) { 
    alert(result[1]) 
}