【发布时间】:2011-07-20 13:48:22
【问题描述】:
我希望尝试在我的网站上订阅的人输入昵称,并且该昵称应完全由字母和数字组成(完全没有特殊字符)。
我想要以下内容:仅限abcdefghijklmnopqrstuvwxyz1234567890。
如何检查它是否只有这些?
【问题讨论】:
我希望尝试在我的网站上订阅的人输入昵称,并且该昵称应完全由字母和数字组成(完全没有特殊字符)。
我想要以下内容:仅限abcdefghijklmnopqrstuvwxyz1234567890。
如何检查它是否只有这些?
【问题讨论】:
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 指定它。
【讨论】:
【讨论】:
这是我的简单解决方案仅适用于 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, ""));
}
【讨论】:
使用 javasacript
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/
【讨论】: