我希望那些尝试在我的网站上订阅的人输入一个昵称,该昵称应该只包含字母和数字(根本不包含特殊字符)。
我想知道如下:仅abcdefghijklmnopqrstuvwxyz1234567890
。
如何检查是否只有那些?
答案 0 :(得分:12)
HTML5解决方案将是......
<input type="text" id="input-nickname" name="nickname" pattern="[a-z\d]*" />
但是,为了获得最佳浏览器支持,您可以使用JavaScript ...
document.getElementById('input-nickname').onkeyup = function(event) {
this.value = this.value.replace(/[^a-z\d]/, '');
}
要使JavaScript版本与HTML5方法类似,请查看表单的submit
事件。
请记住,这有一个非常严格的字母和数字定义。要获得正确的Unicode支持,请找到您关注的范围,并使用\u0000-\uFFFF
进行指定。
答案 1 :(得分:0)
答案 2 :(得分:0)
这是我的简单解决方案仅适用于 React 用户(上述解决方案在 React 中无法正常工作)。 3 个步骤。
首先,创建一个状态。
const [tagInputVal, setTagInputVal] = useState("");
然后,使用状态作为输入值 (value={tagInputVal}
) 并将事件传递给 onChange
处理程序。
<input id="tag-input" type="text" placeholder="Add a tag" value={tagInputVal} onChange={(e) => onChangeTagInput(e)}></input>
然后,在 onChange
处理程序中设置事件的值。
function onChangeTagInput(e) {
setTagInputVal(e.target.value.replace(/[^a-zA-Z\d]/ig, ""));
}
答案 3 :(得分:-1)
使用javascript
function testAlphanumeric(input){
var regex=/^[0-9A-Za-z]+$/;
if(regex.test(input)){
alert("Good")
return true;
} else {
alert("Incorrect")
return false;
}
}
来源链接: http://newsourcemedia.com/blog/javascript-non-alphanumeric-characters-regex/