适用于regex101但不适用于javascript的模式

时间:2018-04-27 03:05:39

标签: javascript html

我必须在表单中为字段设置模式。模式必须具有以下特征:

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

2.它可以包含数字,字母(大写或小写),“点”,“破折号”和“下划线”

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>

1 个答案:

答案 0 :(得分:2)

在正则表达式中,删除不需要的^$。下面的演示按预期工作,它使用一个实时测试服务器(虽然不是真的必要,因为您主要关注的是请求属性正常工作)。要在成功提交后进行测试和确认,请在表单下方的iframe中查找服务器响应。

演示

&#13;
&#13;
<!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>
&#13;
&#13;
&#13;