我有一个文本字段,我正在读取其值。我只想允许字母数字字符和连字符 - 值。
如果我输入 abc$d 或 w2w,2 或 we&*23 等值,到目前为止我的正则表达式似乎不会触发。
var someName = document.getElementById("sometextField");
if(/^[a-z0-9-]+$/i.test(someName.value))
{
alert('Name can only be alpha numeric with hypen.');
return;
}
Run Code Online (Sandbox Code Playgroud)
请帮忙。感谢您的帮助和时间。
访问输入的value属性:
if(!/^[a-z0-9-]+$/i.test(someName.value)) {
//-------------------------^^^^^^^^^^
alert('Name can only be alpha numeric with hypen.');
return;
}
Run Code Online (Sandbox Code Playgroud)
要仅允许在表达式中间使用连字符,而不是在开头或结尾,可以使用以下命令。可能有更好的方法,但这应该可以完成工作。你有三组[a-z0-9]+,但中间一组也允许-。起始组和结束组不允许-。
/^[a-z0-9]+[a-z0-9-]+[a-z0-9]+$/
Run Code Online (Sandbox Code Playgroud)