0
私は10桁または11桁のユーザー入力に基づいて電話番号をフォーマットするためのjavascriptを取得しようとしています。 11桁の数字は、最初に1から始まる1〜800の数字のような電話番号です。最終的な出力は、000-000-0000または1-000-000-0000のいずれかにする必要があります。私が始めるために与えられたサンプルのJavaScriptコードは、10桁の電話番号で動作しますが、1800の番号があるかどうかを認識してそれに応じてjavascriptが必要です。10桁または11桁の電話番号のJavaScriptフォーマットと1800の電話番号の認識
以下は私の最初の動作しているJavaScriptとその下にありますが、10と11のデジタルフォーマットに対応するオンラインで見つかったコードですが、2つのメッシュをどのようにメッシュ化するのか分かりません。
ご協力いただきましてありがとうございます。
<script type="text/javascript">
var phoneNumberVars = [ "UserProfilePhone", "UserProfilePhone1", "UserProfilePhone2", "UserProfilePhone3", ];
InitialFormatTelephone();
function InitialFormatTelephone()
{
for (var i = 0; i < phoneNumberVars.length; i++)
{
FormatTelephone(phoneNumberVars[i]);
}
}
function StorefrontEvaluateFieldsHook(field)
{
for (var i = 0; i < phoneNumberVars.length; i++)
{
if (field.id == "FIELD_" + FieldIDs[phoneNumberVars[i]])
{
FormatTelephone(phoneNumberVars[i]);
}
}
}
function FormatTelephone(varName)
{
var num = document.getElementById("FIELD_" + FieldIDs[varName]).value;
var charArray = num.split("");
var digitCounter = 0;
var formattedNum;
if (charArray.length > 0)
formattedNum = “-“;
else
formattedNum = "";
var i;
for (i = 0;i < charArray.length; i++)
{
if (isDigit(charArray[i]))
{
formattedNum = formattedNum + charArray[i];
digitCounter++;
if (digitCounter == 3)
{
formattedNum = formattedNum + “-“;
}
if (digitCounter == 6)
{
formattedNum = formattedNum + "-";
}
}
}
if (digitCounter != 0 && digitCounter != 10)
{
alert ("Enter a valid phone number!");
}
// now that we have a formatted version of the user's phone number, replace the field with this new value
document.getElementById("FIELD_" + FieldIDs[varName]).value = formattedNum;
// force an update of the preview
PFSF_AjaxUpdateForm();
}
function isDigit(aChar)
{
myCharCode = aChar.charCodeAt(0);
if((myCharCode > 47) && (myCharCode < 58))
{
return true;
}
return false;
}
</script>
~~~~~~~~~~~~~~~~~
はStackOverflowのへようこそ。あなたの質問を改善するためのヒントについては、[ask]ページをお読みください。 大きな質問はコミュニティからより迅速かつより良い回答を提供する傾向があります。 – ochi
私は「How to Ask」ページを読んだ後、多分私の質問に多くのコードを追加したと思います。しかし、私はJavaScriptの作家ではなく、この問題を解決するのに必要なプログラムからの情報の量が最小限であることはわかりません。私は、コード内の "("、 ")"と " - "をどのように変更するかだけに精通しています。これを簡単に解決できるように多くの情報を追加したかどうかは分かります。ご回答いただきありがとうございます。 – SWL
あなたは質問の問題を少なくとも[mcve]に減らすことができます。 – ochi