空格的HTML模式属性和单词列表

时间:2015-11-22 21:49:49

标签: html regex html5 forms web

我正在以html格式验证用户输入。我希望表单能够捕获任何空格和不允许的单词列表。

<td><input type="text" name="Name" pattern="^[^\s]+$|cow|horse" required ></td>

如果输入中有任何空格,则模式值“^ [^ \ s] + $”的位似乎会捕获。但是,如果输入了牛或马,则以下代码不会捕获/停止表单提交。请有人就此向我提出建议。

3 个答案:

答案 0 :(得分:2)

如果要断言输入字段:

  • 不包含任何空白字符(由<openerp> <data> <record id="open_retainer" model="ir.actions.act_url"> <field name="name">Pay Retainer</field> <field name="type">ir.actions.act_url</field> <field name="target">new</field> <field name="url" eval="'some_url' if True else ''"/> </record> <menuitem name="Pay Retainer" id="menu_pay_retainer" groups="base.group_portal" action="open_retainer" parent="portal.portal_orders"/> </data> </openerp> 定义,相当于\s
  • 不是空字符串
  • 不等于[ \f\n\r\t\v​\u00a0\u1680​\u180e\u2000​-\u200a​\u2028\u2029\u202f\u205f​\u3000\ufeff]cow

然后你可以使用以下正则表达式:

horse

由于^(?!(cow|horse)$)\S+$ 标记的pattern字段验证整个字符串与模式匹配,因此开头为input,而^位于结束是多余的。

$

答案 1 :(得分:0)

你可以用这样的Javascript进行验证:

<form name="testform" action="testpage.php" onsubmit="return validate()" method="post">
    <input type="text" name="Name" pattern="^[^\s]+$" required>
    <input type="submit">
</form>

<script>
    function validate() {
        var x = document.forms["testform"]["Name"].value;
        if (x == "cow" || x == "horse") {
            alert("can not be "+x);
            return false;
        }
    }
</script>

这是一个有效的例子:http://jsfiddle.net/y9mperc0/

答案 2 :(得分:0)

这是针对边界子串(单词) -

^(?:(?!\s|\b(?:cow|horse)\b)[\S\s])+$

 ^ 
 (?:
      (?!
           \s 
        |  
           \b 
           (?: cow | horse )
           \b 
      )
      [\S\s] 
 )+
 $

这适用于非边界子串 -

^(?:(?!\s|cow|horse)[\S\s])+$

 ^ 
 (?:
      (?!
           \s 
        |  cow
        |  horse
      )
      [\S\s] 
 )+
 $