2
A
回答
2
有幾種方法可以做到這一點。對於你的情況,你可以使用負前瞻:
<input type="text" id="categoryId" data-constraints="@Pattern(regex=/^(?!.*[0-9]-[A-Z]{3}-[0-9]{4})/)" />
我不知道怎麼說的更復雜的正則表達式的作品,但如果是這樣的話,我想你可以創建一個自定義的約束:
regula.custom({
name: "NotPattern",
params: ["regex"],
defaultMessage: "The value must not match {regex}.",
validator: function(params) {
var regex = new RegExp(params["regex"]);
return !regex.test(this.value);
}
});
你甚至可以推遲到內置@Pattern
驗證您的驗證功能,像這樣:
regula.custom({
name: "NotPattern",
params: ["regex"],
defaultMessage: "The value must not match {regex}.",
validator: function(params, validator) {
return !validator.pattern(this, params);
}
});
然後你可以使用它在您輸入元素,像這樣:
<input type="text" id="categoryId" data-constraints="@NotPattern(regex=/[0-9]-[A-Z]{3}-[0-9]{4}/)" />
我建議第二種方法,因爲你可以在該內置@Pattern
驗證支持,像flags
的正則表達式標誌參數傳遞。這也是內置驗證器的正確反例。
編輯:我認爲這可能是有用的,添加一個可選參數@Pattern
,以便您可以反轉模式。所以基本上(假設此功能已實現的)所有你必須做的是這樣的:
<input type="text" id="categoryId" data-constraints="@Pattern(regex=/[0-9]-[A-Z]{3}-[0-9]{4}/, invert=true)" />
我會把這個我要做的事情就行了。
相關問題
- 1. 模式匹配不匹配
- 2. 檢查一個字符串是否匹配模式
- 3. Haskell類型檢查/模式匹配
- 4. 檢查URL是否匹配模式
- 5. 模式匹配/檢查功能1
- 6. 模式不匹配
- 7. 查找文件不匹配模式
- 8. 模式匹配不等式
- 9. Android的模式匹配(不匹配)
- 10. 如何檢查枚舉是否與模式不匹配?
- 11. 模式匹配,匹配多個字符
- 12. 與多個匹配匹配的模式
- 13. 一對模式匹配問題與模式匹配在Lua
- 14. 匹配模式,插入模式,直到下一次匹配
- 15. 如何檢查文件名是否匹配通配符模式?
- 16. 模式不匹配第一 「COS」
- 17. 如何模式匹配一個函數?
- 18. PHP - 生成一個匹配模式串
- 19. 在同一行匹配多個模式
- 20. 爲什麼這個模式不匹配
- 21. 匹配模式不是,()
- 22. UriMatcher不匹配模式
- 23. XSLT破:模式不匹配
- 24. RewriteCond模式組不匹配
- 25. 有效地檢查,如果一個字集(Python)的匹配模式
- 26. 匹配模式並打印後匹配一個字的grep
- 27. 多個模式匹配
- 28. awk多個匹配模式
- 29. 正則表達式只檢查每行的第一個匹配
- 30. 模式匹配
工作正常!非常感謝!! –