【问题标题】:Restrictions for input type=text输入类型=文本的限制
【发布时间】:2019-10-21 09:43:53
【问题描述】:

有人可以帮我解决输入文本的限制吗?

<input type = text size = 18 name = part_numb value = '' pattern = '([A-NP-Z0-9 -]). {0,50}' id = 'part_numb' required>

在这种情况下,它不起作用。

我的限制是:

  1. 值不能包含字母“O”,自动替换为数字“0”

  2. 该值不能包含小写字母,只能是大写字母。 (自动替换)

  3. 该值不能包含除“-”以外的特殊符号,但该值不能以“-”开头或结尾(自动删除)

  4. 该值不能包含可用空间。 (自动删除)

5。此输入是必需的。

  1. 符号必须是“A-N”、“P-Z”、“0-9”、“-”

我认为必须使用“onChange”,但我不确定。

如果这个话题不适合这里,请见谅。

提前致谢。

【问题讨论】:

    标签: javascript design-patterns input text restriction


    【解决方案1】:

    好的。这是正确答案:

     <script src="../../js/2.1.1.js"></script>
    
    print"<tr><td>PN:</td><td><input type=text size=18 name='pn' class='validate-field' id='pn' value='$pn'></td></tr>";
    
    <script type="text/javascript">
    
        const replacer = (val) => {
            if ((/[O]/g).test(val)) {
                val = val.replace(/[O]/g, '0');
            } else if ((/^[-]/g).test(val)) {
                val = val.replace(/[-]/g, '');
            } else if ((/[^\w-]/g).test(val)) {
                val = val.replace(/[^\w-]/g, '');
            }
            return val;
        };
    
        $(":text.validate-field").on("keyup change paste", function() {
            this.value = this.value.toUpperCase();
            (/^[A-NP-Z0-9][A-NP-Z0-9-]+[A-NP-Z0-9-]$/g).test(this.value) ? this.value : this.value = replacer(this.value);
        });
    
        $(":text.validate-field").on("blur", function() {
            (/[-]$/g).test(this.value) ? this.value = this.value.replace(/[-]$/g, '') : null;
        });
    
    
    </script>
    

    正常工作

    【讨论】:

      猜你喜欢
      • 2019-12-08
      • 1970-01-01
      • 2018-03-06
      • 2019-07-04
      • 2012-08-23
      • 2010-12-30
      • 1970-01-01
      • 2018-06-17
      相关资源
      最近更新 更多