将字符限制为输入字段中的字母和数字

时间:2011-07-20 13:48:23

标签: regex forms input

我希望那些尝试在我的网站上订阅的人输入一个昵称,该昵称应该只包含字母和数字(根本不包含特殊字符)。

我想知道如下:仅abcdefghijklmnopqrstuvwxyz1234567890

如何检查是否只有那些?

4 个答案:

答案 0 :(得分:12)

HTML5解决方案将是......

<input type="text" id="input-nickname" name="nickname" pattern="[a-z\d]*"  />

jsFiddle

但是,为了获得最佳浏览器支持,您可以使用JavaScript ...

document.getElementById('input-nickname').onkeyup = function(event) {

    this.value = this.value.replace(/[^a-z\d]/, '');

}

jsFiddle

要使JavaScript版本与HTML5方法类似,请查看表单的submit事件。

请记住,这有一个非常严格的字母和数字定义。要获得正确的Unicode支持,请找到您关注的范围,并使用\u0000-\uFFFF进行指定。

答案 1 :(得分:0)

我建议您查看:RegEx library

它包含许多RegEx,您可以直接在网站上测试并根据您的需要进行更改。

每当我需要使用RegEx时,我总是将它用作源。

答案 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/