我认为我正在尝试做的事情是可能的......但我还没有找到实现这一目标的答案。我想在javascript中格式化一个与此类似的字符串:
+44 (0) 234-567-8901
进行中的国际 ( +44 ) 和本地 ( (0) ) 调用代码可能会发生变化,因此字符串可能会更长或更短。但是格式始终相同。
我想使用这个字符串并删除所有字符,包括直到第二个空格的空格并删除破折号。例如:
+44 (0) 234-567-8901 becomes 2345678901
任何人都可以帮忙吗?
谢谢
我认为我正在尝试做的事情是可能的......但我还没有找到实现这一目标的答案。我想在javascript中格式化一个与此类似的字符串:
+44 (0) 234-567-8901
进行中的国际 ( +44 ) 和本地 ( (0) ) 调用代码可能会发生变化,因此字符串可能会更长或更短。但是格式始终相同。
我想使用这个字符串并删除所有字符,包括直到第二个空格的空格并删除破折号。例如:
+44 (0) 234-567-8901 becomes 2345678901
任何人都可以帮忙吗?
谢谢
按照您自己的要求(删除包括第二个空格在内的所有内容,并从其余空格中删除破折号);
使用此模式^([\S]+\s){2}|-
并什么都不替换。您应该留下一个与您要求的数字相似的数字(+44 (0) 234-567-8901
变成2345678901
)。
如果您可以依赖字符串的结尾格式是一致的字符数,则可以抓取最后 12 个字符,并删除破折号。
var result = str.slice(-12).replace(/-/g, "");
如果你真的只是想要一个正则表达式,你可以这样做......
var result = str.match(/(\d{3})-(\d{3})-(\d{4})$/).slice(1).join("");
同样,这依赖于字符串结尾的一致性。如果可能存在差异,则需要进行调整以进行补偿。
要获取最后一个空格之后的所有内容,slice()
请将第一个示例中的更改为...
.slice(str.lastIndexOf(' ') + 1)
要获取第二个空格之后的所有内容,请将其更改slice()
为...
.slice(str.indexOf(' ', str.indexOf(' ') + 1) + 1)