HTML5表单验证模式会在前3个字符后自动创建一个空格吗?

时间:2017-03-13 02:24:10

标签: javascript html5 forms validation

使用HTML表单中的pattern属性是否可以在3个字符后自动创建空格?如何实现这一目标?

图案= “([A-z0-9À-Z \ S]){2}”

输入只是一个文本字段,一遍又一遍地接收相同的数据。 3个数字,1个空格,然后是一个名字。我希望能够输入它,但在数字后返回一个额外的空格。

例如: 如果我输入:“951 Houston”,我希望输出:“951 Houston”< --- 3个数字后的额外空格。

我希望在输入任何字符之后。因此,如果有人要输入“休斯顿”,它实际上会输出“Hou ston”这是否可以使用表单中的模式属性?如果是这样的话?如果不是什么可能的解决方案?感谢

1 个答案:

答案 0 :(得分:1)

正则表达式无法添加空格,所以不,只有HTML表单才能实现这一点。您需要做的是首先提取要替换的单词,然后使用正则表达式将单词拆分为三个字符后面的第二个单词,然后将结果添加回DOM:



var textareas = document.getElementsByTagName("textarea");
var str = document.getElementsByTagName("input")[0].value;
var replaced = str.replace(/.{3}/g, function (value, index) {
    return value + (index % 5 == 0 ? ' ' : '');
});

textareas[0].value = replaced;

input, textarea {
    width:100%
}

<input value="Houston"/>
<textarea></textarea>
&#13;
&#13;
&#13;

在上面的示例中,字符串是从相关单词中提取的(在这种情况下是输入字段中的Houston),replaced包含已分成两个新单词的字符串。只需将其插入您想要的任何地方:)

希望这有帮助! :)