JavaScript代码不允许输入点,如何解决这个问题?

时间:2016-12-20 12:10:05

标签: javascript html

在我的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;
}

4 个答案:

答案 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/进行正则表达式测试。