javascript - 将正则表达式 "."放在文本框的按键上

标签 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;
    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>

HTML

<input name="name" type="text" maxlength="100" id="name" value="" onKeyDown="aa_down(this,event);" onKeyUp="aa_up(this,event);" />

http://jsfiddle.net/4emDC/2/

最佳答案

快到了。您只需更改正则表达式,使其接受 . 以及数字。 正确的正则表达式之一是 /[^\d.]/gi

关于javascript - 将正则表达式 "."放在文本框的按键上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14474392/

相关文章:

javascript - 即时jquery函数

javascript - 如何将 Ajax 调用包含为外部文件?

.net - 抓取标签之间的所有 html

javascript - 为什么一个元素在从 DOM 中移除后仍然可以访问?

Android- (button.Click += event;) 和 (button.SetOnClickListener(this)) 之间有什么区别?

javascript - 使用Javascript读取当前目录的文件名

javascript - 在 AngularJS 上读取 JSON

c# - 使用正则表达式抓取'\'之后的部分

java - 正则表达式从响应中获取 json 数据

c# - 多线程更新主窗体