Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 快速问题-从字符串中提取数字_Javascript_Jquery_String_Split - Fatal编程技术网

Javascript 快速问题-从字符串中提取数字

Javascript 快速问题-从字符串中提取数字,javascript,jquery,string,split,Javascript,Jquery,String,Split,我需要从字符串中提取一个变量。字符串始终如下所示: javascript:change(5); 变量为5。 我怎样才能隔离它?非常感谢。这里有一种方法,假设数字总是用括号括起来: var str = 'javascript:change(5);'; var lastBit = str.split('(')[1]; var num = lastBit.split(')')[0]; 使用:- 一个简单的RegExp可以解决这个问题: var inputString = 'javascript:

我需要从字符串中提取一个变量。字符串始终如下所示:

javascript:change(5);
变量为5。

我怎样才能隔离它?非常感谢。这里有一种方法,假设数字总是用括号括起来:

var str = 'javascript:change(5);';
var lastBit = str.split('(')[1];
var num = lastBit.split(')')[0]; 
使用:-


一个简单的RegExp可以解决这个问题:

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

在匹配中使用
javascript:change
部分也可以确保如果字符串格式不正确,您将无法从匹配中获得值。

谢谢。这很有道理。我也非常感谢其他的解决方案。投票被否决是因为有人太喜欢正则表达式而不想放弃它?或者因为它太复杂了,没有必要使用临时变量,而问题规范很简单“在这些东西中找到一个不是数字的数字”
/(\d+)/
是最简单的方法,而
/javascript:change\(\d+)/另外验证周围数据是否为预期格式
split
太聪明了。@hobbs-不同意,因为OP显然对从函数调用中获取实际参数感兴趣(无论是数字还是其他),这将在不考虑(内容)的情况下工作。正则表达式解决方案因任何其他原因而中断。@karim79-与内容无关。它因
javascript:change('(5')而中断。事实上,您的将只返回
-regexp将失败。。。我宁愿找不到任何参数,也不愿从这种函数中得到一个
var str = 'javascript:change(5);', result = str.match(/\((\d+)\)/);

if ( result ) {
    alert( result[1] ) 
}
var str = 'javascript:change(5);', result = str.match(/\((\d+)\)/);

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