首页 > 解决方案 > HTML - 使用模式属性

问题描述

在 html 形式中,我需要允许任何类型的文本的 textarea:数字、符号、换行符或字母,包括希伯来字母。只有两条规则:

  1. 输入必须包含字符串:“{ser}”
  2. 除上述字符串外,输入应禁止使用“{”或“}”

我试过这个:

<form action="#">
...
  <textarea pattern="[^\{\}]*\{ser\}[^\{\}]*" required>
האם אתה נמצא בשבת הקרובה? אם כן נא השב {ser} + שם מלא
  </textarea>
...
  <input type="submit" />
...
                    </form>

但由于某种原因,它也允许发送不符合规则的文本。我会很感激你的帮助。

标签: regexhtml

解决方案


您不能pattern在 textareas 上使用属性,请参阅文档

maxlength 指定允许包含的最大字符数。您还可以使用 minlength 属性设置被认为有效的最小长度,并使用 required 属性指定如果它为空则不会提交(并且无效)。这提供了简单的验证,它比其他表单元素更基本(例如,您不能提供特定的正则表达式来验证使用模式属性的值,就像您可以使用输入元素一样)。

也许用javascript实现正则表达式匹配?

function validateTextarea(text) {
  var re = /ser/g;
  var result = text.match(re);
  if(result != null && result.length > 0)
    // Do something
}

那么可能最好的方法是检查onsubmit表单属性中的功能。


推荐阅读