仅在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);