Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将正则表达式“放入”&引用;关于文本框的按键_Javascript_Regex_Events_Keypress - Fatal编程技术网

Javascript 将正则表达式“放入”&引用;关于文本框的按键

Javascript 将正则表达式“放入”&引用;关于文本框的按键,javascript,regex,events,keypress,Javascript,Regex,Events,Keypress,嗨,我有一个按键的Javascript代码,我想把“.”和数字放在文本框中。我会写数字,但不会“.”。我有Javascript和HTMl,还有Fiddle链接。有人能帮我吗 <script> var aa_zChar = new Array(' '); var aa_maxphonelength = 8; var aa_phonevalue1; var aa_phonevalue2; var aa_cursorposition; fun

嗨,我有一个按键的Javascript代码,我想把“.”和数字放在文本框中。我会写数字,但不会“.”。我有Javascript和HTMl,还有Fiddle链接。有人能帮我吗

<script>
    var aa_zChar = new Array(' ');
    var aa_maxphonelength = 8;
    var aa_phonevalue1;
    var aa_phonevalue2;
    var aa_cursorposition;
    function aa_ParseForNumber1(object){
      aa_phonevalue1 = aa_ParseChar(object.value, aa_zChar);
    }
    function a_ParseForNumber2(object){
      aa_phonevalue2 = aa_ParseChar(object.value, aa_zChar);
    }
    function aa_up(object,e) { 
      if(e){ 
        e = e 
      } else {
        e = window.event 
      } 
      if(e.which){ 
        var keycode = e.which 
      } else {
        var keycode = e.keyCode 
      }
      aa_ParseForNumber1(object)

        aa_ValidatePhone(object)

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

    function aa_ValidatePhone(object){
      var p = aa_phonevalue1
      p = p.replace(/[^\d]*/gi,"") 
        object.value=p


    }

    function aa_ParseChar(sStr, sChar)
    {
      if (sChar.length == null) 
      {
        aa_zChar = new Array(sChar);
      }
        else aa_zChar = sChar;
      for (i=0; i<aa_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>

var aazchar=新数组(“”);
var aa_maxphonelength=8;
var aa_phonevalue1;
var aa_phonevalue2;
var aa_光标位置;
函数aa_ParseForNumber1(对象){
aa_phonevalue1=aa_ParseChar(object.value,aa_zChar);
}
函数a_ParseForNumber2(对象){
aa_phonevalue2=aa_ParseChar(object.value,aa_zChar);
}
函数aa_up(object,e){
如果(e){
e=e
}否则{
e=窗口事件
} 
如果(e.which){
var keycode=e
}否则{
var keycode=e.keycode
}
aa_ParseForNumber1(对象)
aa_验证电话(对象)
}
函数aa_down(object,e){
如果(e){
e=e
}否则{
e=窗口事件
} 
如果(e.which){
var keycode=e
}否则{
var keycode=e.keycode
}
aa_ParseForNumber2(对象)
} 
功能aa_验证电话(对象){
var p=aa_phonevalue1
p=p.replace(/[^\d]*/gi,”)
object.value=p
}
函数aa_ParseChar(sStr,sChar)
{
if(sChar.length==null)
{
aazchar=新阵列(sChar);
}
否则aazchar=sChar;

对于(i=0;i

几乎在那里。您只需更改正则表达式,使其接受带数字的

正确的正则表达式之一是
/[^\d.]/gi

一个盲目的答案是将
/[^\d]*/gi
更改为
/[^\d.]*/gi
(尽管最后的i实际上是多余的)。但是,代码似乎是以电话号码的形式读取的?不,它不是电话号码格式。实际上我没有更改变量。这是因为您不需要在
内转义
[]
<input name="name" type="text" maxlength="100" id="name" value="" onKeyDown="aa_down(this,event);" onKeyUp="aa_up(this,event);" />