繁体   English   中英

用Java格式格式化10或11位电话号码,并识别1800个电话号码

[英]Javascript formatting of 10 or 11 digit phone numbers and recognizing a 1800 phone number

我正在尝试让javascript根据用户输入的10或11位数字来格式化电话号码。 11位数字表示电话号码,开头应为1,例如1-800。 我需要最终输出为000-000-0000或1-000-000-0000。 我开始使用的示例javascript代码可与10位电话号码配合使用,但我需要javascript还要识别是否有1800号并相应地附加。

以下是我最初使用的JavaScript,下面是我在网上找到的可解决10和11数字格式的代码,但是我不知道如何将两者结合在一起。

预先感谢您提供的任何帮助。

~~~~~~~~~~~~~~~~~

<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>
<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 cleanednum = num.replace( /[^0-9]/g, "");
  var charArray = cleanednum.split("");

  var digitCounter = 0;

var formattedNum = "";

var digitPos1 = 0;
var digitPos3 = 3;
var digitPos6 = 6;

  if (charArray.length ===11)
  {
        digitPos1++;
        digitPos3++;
        digitPos6++;
        }

  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 === digitPos1)
      {
            formattedNum = formattedNum + "-";
            }
      if (digitCounter == digitPos3)
      {
            formattedNum = formattedNum + "-";
            }
          if (digitCounter == digitPos6)
      {
            formattedNum = formattedNum + "-";
            }
    }
  }

  if ((charArray.length ==10 || charArray.length == 11 || charArray.length == 0) === false)

  {
    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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM