输入类型=文本的限制

Restrictions for input type=text

谁能帮我解决输入文本的限制问题?

<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",但我不确定。

如果这个话题不在这里,请原谅。

提前致谢。

好的。这是正确答案:

 <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>

正常工作