数据属性中的Javascript正则表达式
Javascript regex in data attributes
我正在制作一个自定义表单验证插件。它使用的是HTML5数据属性,该属性放置在每个需要满足特殊参数的输入中。示例:
<input type="text" name="year" id="year" data-valid='{"message":"a", "regEx":"^'$?('d+|'d*'.'d+)$"}' required />
初始数据对象进入javascript很好,但当我在某些自定义regex下扩展对象时,扩展对象会导致错误。
以下是创建对象的代码片段:
var data = $this.data();
var defaults = {
specialType: '', //currently accepts VIN, USPhone and Email
inputType: '', //intLetter(accepts only integers and numbers), integer, float, floatInteger(accepts both floats or integer) letters, or all(accepts anything the user types)
inputLength: '', //define max length user can input
regEx: '', //define ur own regular expression (this will override the datatype)
message: ''
}
var validObj = $.extend({}, defaults, data.valid);
现在,如果我使用不带''的regex,它的工作原理类似于:^[0-9]+$
输入html将看起来像:
<input type="text" name="year" id="year" data-valid='{"message":"a", "regEx":"^[a-zA-Z]+$"}' required />
被扩展的对象将在谷歌chromes控制台中打印,如:
Object {specialType: "", inputType: "", inputLength: "", regEx: "^[a-zA-Z]+$", message: "a"…}
但是,如果我使用这样的正则表达式:^''$?(''d+|''d*.''d+)$
输入html将看起来像:
谷歌chrome吐出一个像这样的对象
Object {0: "{", 1: """, 2: "d", 3: "a", 4: "t", 5: "a", 6: "t", 7: "y", 8: "p", 9: "e", 10: """, 11: ":", 12: """, 13: "f", 14: "l", 15: "o", 16: "a", 17: "t", 18: "I", 19: "n", 20: "t", 21: "e", 22: "g", 23: "e", 24: "r", 25: """, 26: ",", 27: " ", 28: """, 29: "m", 30: "e", 31: "s", 32: "s", 33: "a", 34: "g", 35: "e", 36: """, 37: ":", 38: """, 39: "a", 40: """, 41: ",", 42: " ", 43: """, 44: "r", 45: "e", 46: "g", 47: "E", 48: "x", 49: """, 50: ":", 51: """, 52: "^", 53: "'", 54: "$", 55: "?", 56: "(", 57: "'", 58: "d", 59: "+", 60: "|", 61: "'", 62: "d", 63: "*", 64: "'", 65: ".", 66: "'", 67: "d", 68: "+", 69: ")", 70: "$", 71: """, 72: "}", specialType: "", inputType: "", inputLength: "", regEx: "", message: ""}
我不知道为什么。我试过在正则表达式的开头和结尾加上/,但这也不起作用。如有任何帮助,我们将不胜感激。
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 正则表达式只允许 x 个整数
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 改进用于验证付款金额的正则表达式
- 正则表达式与数字中的第二个点匹配
- 键按正则表达式以查找具有负值的小数
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 将po-box javascript正则表达式转换为c#regex
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 使用正则表达式捕获“”并分割成阵列
- 将这些正则表达式从javascript转换为Java
- 用于验证JS中逻辑运算符表达式的正则表达式