适用于正则表达式101但在JavaScript中不起作用的模式



我必须为我的形式的字段设置模式。该模式必须具有以下特征:

1.它必须在8到12个字符之间。

2.它可以包含数字,字母(大写或小写(," dot"," dash"one_answers"下划线"

3.它必须从字母开始。

我设法找到了在https://regex101.com/上工作的模式,但是当我编写JavaScript时,代码不起作用。

这是模式: ^[A-ZA-Z] [A-ZA-Z0-9 .-_] {7,11} $

这是代码:

<!DOCTYPE html>
<html>
<body>
<form name="regForm" action="/action_page.php" onsubmit="return validateForm()" method="post">
username: <input type="text" name="uname" pattern="^[a-zA-Z][a-zA-Z0-9.-_]{7,11}$" id="uname" required="required"><br>
<br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>

在正则时,删除^$是不需要的。下面的演示可以按预期工作,并且使用了实时测试服务器(尽管不是真正的必要,因为您的主要关注点是请求属性正常工作(。要测试并确认成功提交后,请在表格下方的iframe中查找服务器响应。

demo

<!DOCTYPE html>
<html>
<body>
  <form name="regForm" action="https://httpbin.org/post" method="post" target='response'>
    username: <input type="text" id="uname" name="uname" pattern="[a-zA-Z][a-zA-Z0-9.-_]{7,11}" required="required"><br>
    <br><br>
    <input type="submit"><br><br>
    <h4>iFrame will display test server response</h4>
    <iframe src='about:blank' name='response'></iframe>
  </form>
</body>
</html>

最新更新