Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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_Regex - Fatal编程技术网

仅在JavaScript字符串中选择数字

仅在JavaScript字符串中选择数字,javascript,jquery,regex,Javascript,Jquery,Regex,我想从给定字符串中选择所有数字。我尝试使用下面的代码,但它不会返回字符串中的所有数字: var match = /\d+/.exec("+12 (345)-678.90[]"); console.log(match.toString()); 它只返回12,而我希望它返回1234567890使用: 您需要使用global标志,它将返回一个匹配数据数组,您可以使用join()it "+12 (345)-678.90[]".match(/\d+/g).join(''); alert(“+12(3

我想从给定字符串中选择所有数字。我尝试使用下面的代码,但它不会返回字符串中的所有数字:

var match = /\d+/.exec("+12 (345)-678.90[]");
console.log(match.toString());
它只返回
12
,而我希望它返回
1234567890

使用:


您需要使用
global
标志,它将返回一个匹配数据数组,您可以使用
join()
it

"+12 (345)-678.90[]".match(/\d+/g).join('');

alert(“+12(345)-678.90[]”。match(/\d+/g)。join(“”))
\d+
模式将仅返回连续数字,并且由于您在不使用
g
选项的情况下运行
exec
一次,因此它只会给您第一次出现的连续数字

使用以下命令:

var re=/\d+/g;
var-str='+12(345)-678.90[]';
var res=“”;
while((m=re.exec(str))!==null){
res+=m[0];
}

警报(res)将提供简单的实现

var value='+12 (345)-678.90[]'.replace(/\D+/g, '');
console.log(value);

在正则表达式中使用全局。您只选择了一个匹配项。里面有四根火柴<代码>“+12(345)-678.90[]”。替换(/\D/g“”)
应该做一些类似于
/\d+/g
@Juhana:很好的捕获,看起来这里是多余的。在某些情况下,我们需要对匹配项进行计数,这样做很有用。这是使用
返回匹配项。。比如12345678,90。添加
.join(“”)
返回完美是必需的:
var value='+12 (345)-678.90[]'.replace(/\D+/g, '');
console.log(value);