我想为我的网页浏览器输入一个自动完成工具,例如,如果按Tab键,单词htt
会自动完成,将tp://
添加到我的输入值
自动填充属性必须仅在用户输入" htt"在URL的开头。
我想通过正则表达式验证自动完成:
if(event.keyCode == 9){
if(myInput.value.match(/^(h|ht|htt|http|http:|http:\/)/)){
myInput.value = "http://";
}
}
但结果不是预期的......
答案 0 :(得分:2)
要改变的三件事:
myInput.value
,因为您与==
而不是=
进行了比较。$
的结尾,或者在初始“h”之后的其他文本(可能在编辑已经存在的“http”之后)可能被替换 - 可能是不合需要的。 这是一个工作片段:
myInput.addEventListener('keydown', function (event) {
if (event.keyCode == 9){
if(this.value.match(/^(h|ht|htt|http|http:|http:\/)$/)){
this.value = "http://";
}
event.preventDefault();
}
});
<input id="myInput">