【问题标题】:regular expression for entering wrong address and restrict user using javascript or jQuery使用 javascript 或 jQuery 输入错误地址和限制用户的正则表达式
【发布时间】:2020-02-06 05:49:05
【问题描述】:

如果地址输入错误,我尝试了一段代码来限制用户,如下所示 示例地址:#23 78/54, A-31 Nand Jyot Indl Estate, Andheri- Kurla Road, Saki Naka(允许)

14/18,Loha Bhavan,PD Mello Rd,Chinch Bunder,孟买(允许)

只有“.....”、“,,,”、“----”(不允许)


 $("#" + (idOfElement)).on("keypress keyup", function (e) {
                        this.value = this.value
                            //.replace(/[^\..]/g,'')
                            .replace(/(^[\d#\w]+)/g, '$1')
                            .replace(/(\s[1-9A-Za-z\/#-]*)./g, '$1');

                    });

我希望允许用户仅输入数字、“#”、“/”、“-”、空格和字母,如果他们输入任何其他特殊字符,则不应允许他们这样做。

下面给出的代码适用于小数点到两位的数字。同样,我想对地址做同样的事情。

下面的代码允许 12345.67

不允许 23.4565、23289.499999

//for numbers with decimal point upto two position
$("#" + (idOfElement)).on("keypress keyup blur", function (e) {
                        this.value = this.value
                            .replace(/[^\d.]/g, '')
                            .replace(/(^[\d]+)([\d]*)/g, '$1')
                            .replace(/(\..*)\./g, '$1')
                            .replace(/(\.[\d]{2})./g, '$1');
                        if ((e.which != 46 || $(this).val().indexOf('.') != -1) && (e.which < 48 || e.which > 57)) {
                            e.preventDefault();
                        }

我还希望用户只输入带有空格和数字的字母。

样本数据:牙膏200g(允许)

洗发水..(不允许)

洗发水(带有任何其他特殊字符,如!,?,_,~)(不允许)

【问题讨论】:

  • 您是否考虑过在输入字段上使用pattern 属性?见docs
  • 我不允许用户输入任何特殊字符,也就是说,在进行输入时,如果用户用户尝试输入不允许的内容,则不会在输入字段中输入。只有在我们尝试提交表单后,pattern 属性才会检查模式。

标签: javascript jquery html regex


【解决方案1】:

使用下面的代码示例。也请在评论中找到相同的小提琴。

<input type="text" id="addressID">

  $(document).ready(function(){
  $("input").bind('input', function(e) {
  var str = $("#addressID").val();
  var re = new RegExp(/^[ A-Za-z0-9\/#-]*$/g);
  if (re.test(str)) {
          //alert('valid');

    } else {
       alert("Invalid address, only alphanumeric values and '/','#','-' allowed");
       $("#addressID").val($("#addressID").val().slice(0, -1));
    }
});
}); 

【讨论】:

  • 上述答案的小提琴链接jsfiddle.net/shivpatne/u27mvb95
  • 如果有效,请接受答案并投票,如果无效,请告诉我问题。
  • 这个正则表达式的地址是否正确,你能帮我解决这个问题
  • 是的,我已经完全按照您的要求创建了正则表达式。它将允许输入字母数字值,并且只允许输入您在问题“#”、“/”和“-”中提到的特殊字符
猜你喜欢
  • 1970-01-01
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多