2

私がやろうとしていることは可能だと思います...しかし、それを達成する答えはまだ見つかりません。JavaScriptでこれに似た文字列をフォーマットしたいと思います:

+44 (0) 234-567-8901

後続の国際 ( +44 ) およびローカル ( (0) ) 呼び出しコードは変更される可能性があるため、文字列は長くなったり短くなったりする可能性があります。ただし、形式は常に同じです。

この文字列を取得して、2 番目の空白までの空白を含むすべての文字を削除し、ダッシュを削除したいと思います。例えば:

+44 (0) 234-567-8901 becomes 2345678901

誰でも助けることができますか?

ありがとう

4

2 に答える 2

2

独自の要件に従います (2 番目の空白までのすべてを削除し、残りのダッシュを削除します)。

このパターン^([\S]+\s){2}|-を使用し、何も置き換えません。求めたものと同様の番号が残るはずです (+44 (0) 234-567-8901になる2345678901)。

于 2012-07-18T15:25:30.187 に答える
1

文字列の終了形式が一貫した文字数であると信頼できる場合は、最後の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)

2番目の空白の後にすべてを取得するには、をこれに変更slice()します...

.slice(str.indexOf(' ', str.indexOf(' ') + 1) + 1)
于 2012-07-18T15:11:02.087 に答える