将所有字母和javascript字符串中的2个以上空格替换为空字符

时间:2014-07-25 11:19:30

标签: javascript regex string

我需要在javascript字符串中替换所有字母和超过2个空格的“”。 我有这个:

order.Order.Telefonos = order.Order.Telefonos.replace(/[^A-Za-z]|[^\S\r\n]{2,}/, '');

但是当order.Order.Telefonos有这个:

"CASA: 1111111111      Varios:                Trabajo: 111111111"

给我回复:

1111111111Varios:Trabajo:111111111

我的正则表达式错了吗?

2 个答案:

答案 0 :(得分:2)

您正在使用否定:[^...]。只使用没有否定的字符类,并使用全局修饰符(/..../g)来替换所有匹配。

var s = "CASA: 1111111111      Varios:                Trabajo: 111111111";
s.replace(/[A-Za-z]|\s{2,}/g, '')
// => ": 1111111111:: 111111111"

答案 1 :(得分:1)

您没有逐字复制结果,因为您的输入将是

'CASA 1111111111      Varios:                Trabajo: 111111111'

然后问你的实际问题:[^A-Za-z]是所有但是字母,省略^。然后使用/…/g进行全局搜索,以查找并替换每个实例。