【问题标题】:How to remove characters when user is typing in javascript用户输入javascript时如何删除字符
【发布时间】:2012-02-13 11:35:33
【问题描述】:

我正在验证一个输入框值,以便it should contain only digit,.,-,/ 在任何时候用户输入任何接受允许的字符,那么只有那个字符应该被删除。

例如。如果我最初输入 12/12/ 然后是 a,那么只有 a 应该从文本框中删除,而不是整个字符串 12/12。

到目前为止我所尝试的。-

<input type="text" onkeyup="isValidDate(this);"/>
function isValidDate(f){ 
    var re =/^[\d\/\.-]+$/;
   if (!re.test(f.value)) { 
    alert("called");
    f.value = f.value.replace(/^[\d\/\.-]+$/g,"");
   }
 }

我得到了提醒,但不需要的值没有被删除。

我如何使用 java 脚本来做到这一点?

【问题讨论】:

标签: javascript regex


【解决方案1】:

您应该可以在函数调用前添加return

如果不需要该字符,则在 javascript 中返回 false。

下面是我要做的。

<input type="text" onkeyup="return isValidDate(this);"/>
function isValidDate(f){ 
    var re =/^[\d\/\.-]+$/;
   if (!re.test(f.value)) { 
    alert("called");
//if you need to add a value instead that can also be done here
return false;
   }
 }

这是我用来检查按键是数字还是小数的代码。它还通过设置传递的标签字段来提醒用户。

<input id='txtUPT' name='UPT' type='text' style='width: 70px' onKeyPress="return NumbersOnly(event, 'lblStatusUPT')">
<label id='lblStatusUPT' class='status'></label>
    function NumbersOnly(evt, label) {
        var status = document.getElementById(label);
        evt = (evt) ? evt : window.event;
        var charCode = (evt.which) ? evt.which : evt.keyCode;
        if (charCode == 46) {
            return true;
        }
        if (charCode < 48 || charCode > 57) {
            status.innerHTML = 'Numbers Only Please';
            return false;
        }
        status.innerHTML = '';
        return true;
    }

【讨论】:

  • 我在代码中添加了。我还添加了一个我只用于数字的函数,只是为了显示基于按下的键进行检查的功能。
  • 每当你使用三元运算符并且y上的东西在这里x=(y)?y:z重复时,你应该能够安全地使用x=y||z(如果我没记错的话)
【解决方案2】:
if(!$("#myform").validate().element( "#myselect" )) //Delete the character

【讨论】:

    【解决方案3】:
    【解决方案4】:

    您为什么不尝试使用正则表达式的更简洁的解决方案?!

    <input type="text" onkeyup="this.value=this.value.replace(/[Search Expression]/flag,'New String');" \/>
    

    此解决方案可防止用户在正则表达式建立的模式之外键入值。

    示例: 要从“名称”字段中删除所有数字

    onkeyup="this.value=this.value.replace(/[\d]/g, '');"
    

    【讨论】:

      猜你喜欢
      • 2020-02-18
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      相关资源
      最近更新 更多