regex - HTML - 使用模式属性
问题描述
在 html 形式中,我需要允许任何类型的文本的 textarea:数字、符号、换行符或字母,包括希伯来字母。只有两条规则:
- 输入必须包含字符串:“{ser}”
- 除上述字符串外,输入应禁止使用“{”或“}”
我试过这个:
<form action="#">
...
<textarea pattern="[^\{\}]*\{ser\}[^\{\}]*" required>
האם אתה נמצא בשבת הקרובה? אם כן נא השב {ser} + שם מלא
</textarea>
...
<input type="submit" />
...
</form>
但由于某种原因,它也允许发送不符合规则的文本。我会很感激你的帮助。
解决方案
您不能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
表单属性中的功能。
推荐阅读
- sql - 在 Postgres 中存储站点的开放时间
- ip - 我们可以用 IP 地址做什么?
- java - 如何修改部署在不同国家的spring boot rest api的业务逻辑
- mysql - 如何使用 MySQL 查询去除具有相同颜色或大小的重复记录
- angular - 如何在 Doughnutchart ng2 chart.js 中自定义百分比标签
- r - 从街道地址字符串中删除“单元号”
- python - 从 pip 安装 instapy 时出现问题
- nginx - Nginx 服务器在尝试代理传递到外部托管服务时返回 308 状态代码
- javascript - 来自 ReDos 攻击的安全正则表达式模式
- apache-kafka - service.properties中的Kafka“num.partitions”设置不生效