zoukankan      html  css  js  c++  java
  • Format phone number 格式化*

    ========================

    Format phone number:

    (123)456-7890

    ========================

    <script language="javascript">
    var zChar = new Array(' ', '(', ')', '-', '.');
    var maxphonelength = 13;
    var phonevalue1;
    var phonevalue2;
    var cursorposition;
    function ParseForNumber1(object){
    phonevalue1 = ParseChar(object.value, zChar);
    }
    function ParseForNumber2(object){
    phonevalue2 = ParseChar(object.value, zChar);
    }
    function backspacerUP(object,e) {
    if(e){
    e = e
    } else {
    e = window.event
    }
    if(e.which){
    var keycode = e.which
    } else {
    var keycode = e.keyCode
    }
    ParseForNumber1(object)
    if(keycode >= 48){
    ValidatePhone(object)
    }
    }
    function backspacerDOWN(object,e) {
    if(e){
    e = e
    } else {
    e = window.event
    }
    if(e.which){
    var keycode = e.which
    } else {
    var keycode = e.keyCode
    }
    ParseForNumber2(object)
    }
    function GetCursorPosition(){
    var t1 = phonevalue1;
    var t2 = phonevalue2;
    var bool = false
    for (i=0; i<t1.length; i++)
    {
    if (t1.substring(i,1) != t2.substring(i,1)) {
    if(!bool) {
    cursorposition=i
    bool=true
    }
    }
    }
    }
    function ValidatePhone(object){
    var p = phonevalue1
    p = p.replace(/[^\d]*/gi,"")
    if (p.length < 3) {
    object.value=p
    } else if(p.length==3){
    pp=p;
    d4=p.indexOf('(')
    d5=p.indexOf(')')
    if(d4==-1){
    pp="("+pp;
    }
    if(d5==-1){
    pp=pp+")";
    }
    object.value = pp;
    } else if(p.length>3 && p.length < 7){
    p ="(" + p;
    l30=p.length;
    p30=p.substring(0,4);
    p30=p30+")"
    p31=p.substring(4,l30);
    pp=p30+p31;
    object.value = pp;
    } else if(p.length >= 7){
    p ="(" + p;
    l30=p.length;
    p30=p.substring(0,4);
    p30=p30+")"
    p31=p.substring(4,l30);
    pp=p30+p31;
    l40 = pp.length;
    p40 = pp.substring(0,8);
    p40 = p40 + "-"
    p41 = pp.substring(8,l40);
    ppp = p40 + p41;
    object.value = ppp.substring(0, maxphonelength);
    }
    GetCursorPosition()
    if(cursorposition >= 0){
    if (cursorposition == 0) {
    cursorposition = 2
    } else if (cursorposition <= 2) {
    cursorposition = cursorposition + 1
    } else if (cursorposition <= 5) {
    cursorposition = cursorposition + 2
    } else if (cursorposition == 6) {
    cursorposition = cursorposition + 2
    } else if (cursorposition == 7) {
    cursorposition = cursorposition + 4
    e1=object.value.indexOf(')')
    e2=object.value.indexOf('-')
    if (e1>-1 && e2>-1){
    if (e2-e1 == 4) {
    cursorposition = cursorposition - 1
    }
    }
    } else if (cursorposition < 11) {
    cursorposition = cursorposition + 3
    } else if (cursorposition == 11) {
    cursorposition = cursorposition + 1
    } else if (cursorposition >= 12) {
    cursorposition = cursorposition
    }
    var txtRange = object.createTextRange();
    txtRange.moveStart( "character", cursorposition);
    txtRange.moveEnd( "character", cursorposition - object.value.length);
    txtRange.select();
    }
    }
    function ParseChar(sStr, sChar)
    {
    if (sChar.length == null)
    {
    zChar = new Array(sChar);
    }
    else zChar = sChar;
    for (i=0; i<zChar.length; i++)
    {
    sNewStr = "";
    var iStart = 0;
    var iEnd = sStr.indexOf(sChar[i]);
    while (iEnd != -1)
    {
    sNewStr += sStr.substring(iStart, iEnd);
    iStart = iEnd + 1;
    iEnd = sStr.indexOf(sChar[i], iStart);
    }
    sNewStr += sStr.substring(sStr.lastIndexOf(sChar[i]) + 1, sStr.length);
    sStr = sNewStr;
    }
    return sNewStr;
    }
    </script>

    And edit the html code for the phone input textbox like the below one:

    <input type="text" name="txtInput" onkeydown="javascript:backspacerDOWN(this,event);" onkeyup="javascript:backspacerUP(this,event);" />

    From: http://www.kodyaz.com/content/howtoautoformattelephonenumber.aspx

    ========================

    Format phone number:

    (123) 456-7890

    ========================

        <script language="javascript">

    var zChar = new Array(' ', '(', ')', '-', '.');
    var maxphonelength = 14;
    var phonevalue1;
    var phonevalue2;
    var cursorposition;

    function ParseForNumber1(object){
    phonevalue1 = ParseChar(object.value, zChar);
    }
    function ParseForNumber2(object){
    phonevalue2 = ParseChar(object.value, zChar);
    }

    function backspacerUP(object,e) {
    if(e){
    e = e
    } else {
    e = window.event
    }
    if(e.which){
    var keycode = e.which
    } else {
    var keycode = e.keyCode
    }

    ParseForNumber1(object)

    if(keycode >= 48){
    ValidatePhone(object)
    }
    }

    function backspacerDOWN(object,e) {
    if(e){
    e = e
    } else {
    e = window.event
    }
    if(e.which){
    var keycode = e.which
    } else {
    var keycode = e.keyCode
    }
    ParseForNumber2(object)
    }

    function GetCursorPosition(){

    var t1 = phonevalue1;
    var t2 = phonevalue2;
    var bool = false
    for (i=0; i<t1.length; i++)
    {
    if (t1.substring(i,1) != t2.substring(i,1)) {
    if(!bool) {
    cursorposition=i
    bool=true
    }
    }
    }
    }

    function ValidatePhone(object){

    var p = phonevalue1

    p = p.replace(/[^\d]*/gi,"")

    if (p.length < 3) {
    object.value=p
    } else if(p.length==3){
    pp=p;
    d4=p.indexOf('(')
    d5=p.indexOf(')')
    if(d4==-1){
    pp="("+pp;
    }
    if(d5==-1){
    pp=pp+") ";
    }
    object.value = pp;
    } else if(p.length>3 && p.length < 7){
    p ="(" + p;
    l30=p.length;
    p30=p.substring(0,4);
    p30=p30+") "

    p31=p.substring(4,l30);
    pp=p30+p31;

    object.value = pp;

    } else if(p.length >= 7){
    p ="(" + p;
    l30=p.length;
    p30=p.substring(0,4);
    p30=p30+") "

    p31=p.substring(4,l30);
    pp=p30+p31;

    l40 = pp.length;
    p40 = pp.substring(0,9);
    p40 = p40 + "-"

    p41 = pp.substring(9,l40);
    ppp = p40 + p41;

    object.value = ppp.substring(0, maxphonelength);
    }

    GetCursorPosition()

    if(cursorposition >= 0){
    if (cursorposition == 0) {
    cursorposition = 2
    } else if (cursorposition <= 2) {
    cursorposition = cursorposition + 1
    } else if (cursorposition <= 5) {
    cursorposition = cursorposition + 2
    } else if (cursorposition == 6) {
    cursorposition = cursorposition + 2
    } else if (cursorposition == 7) {
    cursorposition = cursorposition + 4
    e1=object.value.indexOf(')')
    e2=object.value.indexOf('-')
    if (e1>-1 && e2>-1){
    if (e2-e1 == 4) {
    cursorposition = cursorposition - 1
    }
    }
    } else if (cursorposition < 11) {
    cursorposition = cursorposition + 3
    } else if (cursorposition == 11) {
    cursorposition = cursorposition + 1
    } else if (cursorposition >= 12) {
    cursorposition = cursorposition+1
    } else if (cursorposition >= 13) {
    cursorposition = cursorposition
    }

    var txtRange = object.createTextRange();
    txtRange.moveStart( "character", cursorposition);
    txtRange.moveEnd( "character", cursorposition - object.value.length);
    txtRange.select();
    }

    }

    function ParseChar(sStr, sChar)
    {
    if (sChar.length == null)
    {
    zChar = new Array(sChar);
    }
    else zChar = sChar;

    for (i=0; i<zChar.length; i++)
    {
    sNewStr = "";

    var iStart = 0;
    var iEnd = sStr.indexOf(sChar[i]);

    while (iEnd != -1)
    {
    sNewStr += sStr.substring(iStart, iEnd);
    iStart = iEnd + 1;
    iEnd = sStr.indexOf(sChar[i], iStart);
    }
    sNewStr += sStr.substring(sStr.lastIndexOf(sChar[i]) + 1, sStr.length);

    sStr = sNewStr;
    }

    return sNewStr;
    }
        </script>
    <input type="text" name="txtInput" onkeydown="javascript:backspacerDOWN(this,event);" onkeyup="javascript:backspacerUP(this,event);" />

  • 相关阅读:
    UVALive 7352 Dance Recital
    [ An Ac a Day ^_^ ] UVALive 7270 Osu! Master
    vim配置文件
    数据结构 链表
    [ An Ac a Day ^_^ ] hrbust 2291 Help C5 分形
    [ An Ac a Day ^_^ ] hdu 2553 N皇后问题 搜索
    [ An Ac a Day ^_^ ] HihoCoder 1249 Xiongnu's Land 线性扫描
    hdu 5874 Friends and Enemies icpc大连站网络赛 1007 数学
    hdu 5876 Sparse Graph icpc大连站网络赛 1009 补图最短路
    6.Z字变换 direction
  • 原文地址:https://www.cnblogs.com/emanlee/p/1514914.html
Copyright © 2011-2022 走看看