在我的JavaScript代码中,这部分检查输入框中是否没有特殊字符,但不允许输入点(句点)。如何更改代码以接受要输入的点?
re = /^\w+$/;
if(!re.test(form.username.value)) {
alert("Error: je naam mag alleen letters,nummers, en underscores bevatten!");
form.username.focus();
return false;
}
答案 0 :(得分:2)
<强> Regex101 example 强>
您可以允许.
使用群组[]
:
re = /^[\w.]+$/;
希望这有帮助。
re = /^[\w.]+$/;
function test(input) {
var result = re.test(input) ? "Pass" : "Fail";
console.log(input + " : " + result);
}
test("word.");
test("word");
test("word,word");
test("word.word");
答案 1 :(得分:1)
re = /^\w+$/;
是正则表达式(RegEx)。
\w
表示字母数字字符。^
表示&#34;以&#34;。$
表示&#34;结束&#34; +
表示一次或多次重复。因此,RegEx将传递以字母数字字符开头的任何值,以字母数字字符结尾且至少1个字符长。
.
不是有效的字母数字字符,因此您也需要允许它。
更改为re = /^[\w\.]+$/;
并且也允许点。 (\.
是为了逃避.
字符,因为它在RegEx中具有特殊含义。
另外,在google中搜索regex,这是一个非常强大且有用的输入验证工具。
答案 2 :(得分:0)
试试这个:
re = /^[\w.]+$/;
if(!re.test(form.username.value)) {
alert("Error: je naam mag alleen letters,nummers, en underscores bevatten!");
form.username.focus();
return false;
}
答案 3 :(得分:-1)
试试这个正则表达式:
re = /^\w*\.*\w*$/;
这将允许任意数量的字符(0-infinity)任意数量的点后跟0或更多字符。
您可以使用https://regex101.com/进行正则表达式测试。