我需要在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
我的正则表达式错了吗?
答案 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
进行全局搜索,以查找并替换每个实例。