Javascript 获取与排除字符的匹配

Javascript 获取与排除字符的匹配,javascript,regex,Javascript,Regex,我有文本3571157、357-11-57、357 11 57 我可以用regex\d{3}[-\s]?\d{2}[-\s]?\d{2} 但我想要的是我的对手在任何情况下都像3571157。甚至有可能吗 另外,我的意思是在正则表达式级别上,后面没有额外的代码,为了在代码/[a-z-]+/.exec('ha-ha')[0]中更加清楚,我想输出haha(与排除的-字符匹配)是的,它是可行的。您可以在空格和-,上使用字符串替换,例如: $input = '3571157, 357-11-57, 81

我有文本
3571157、357-11-57、357 11 57

我可以用regex
\d{3}[-\s]?\d{2}[-\s]?\d{2}

但我想要的是我的对手在任何情况下都像
3571157
。甚至有可能吗


另外,我的意思是在正则表达式级别上,后面没有额外的代码,为了在代码
/[a-z-]+/.exec('ha-ha')[0]
中更加清楚,我想输出
haha
(与排除的
-
字符匹配)

是的,它是可行的。您可以在空格和-,上使用字符串替换,例如:

$input = '3571157, 357-11-57,  81749 91741 9080,  81749 91741 9080,  81749 91741 9080  ,357 11 57, 81749 91741 9080';
$split_inputs = preg_split('/,/s', $input);
$output = '';
foreach ($split_inputs as $key => $value) {
    $match = preg_match('/^[0-9 \-]{7,9}$/s', trim($value));
    if (!$match) {continue;}
    $output .= preg_replace('/-|\s/s', '', $value);
    if (sizeof($split_inputs) - 1 - $match != (int) $key) {
        $output .= ", ";
    }
}

var_dump($output);
输出 您可以先使用并匹配您的输入

^[0-9\s\-]{7,9}$

没有标记的编程语言,但如果从字符串中获得匹配项,则可以使用
\D+
将所有非数字替换为只保留数字的空字符串

使用Javascript的示例如下:

let str=“3571157357-11-573571157”;
let pattern=/\d{3}[-\s]?\d{2}[-\s]?\d{2}/g;

log(str.match(pattern.map)(s=>s.replace(/\D+//g'))您使用的是哪种语言?很可能,您需要某种字符串联接或替换函数。文本中的数字是否用逗号分隔?使用:
(\d{3})[-\s]?(\d{2})[-\s]?(\d{2})
和subtitute with
\1\2\3
。请在此处查看演示:。当然,这样做的方式取决于@ggorlen所指出的您正在使用的编程语言(或工具)。
[“3571157”、“357-11-57”、“357-11-57”].map(x=>x.split(/\D+/).join(“”)
-如果是JavaScript
^[0-9\s\-]{7,9}$