我正在研究一个项目,目前无法有任何第三方JS库(否则这将是一件轻而易举的jQuery)。这个项目中的一件事是表单验证。除了我的正则表达式的一些小问题外,我的工作还算顺利。正则表达式 - 新的RegExp()全局搜索/替换字符串
我在文本字段的change()上触发了一个验证函数,所以如果你选中并出现错误,你会立即知道。用良好的数据标签出来,你会立即知道。如果验证失败,我将错误类分配给父元素。如果您只验证一次,此工作正常。如果你把测试失败,错误类建立,例如,如果你失败了验证2X,你结了:
<p class=" error">
如果你失败了3次,你会结束:
<p class=" error error">
如果验证通过,我会调用下面的removeClass()函数。基本上,它看起来并不像我正在进行全球搜索/替换。我确信添加全局修饰符会照顾上面的情况,但它不会,它只会删除一个“错误”类。
removeClass: function (el, name) {
var regex = new RegExp('(^|\\s)' + name + '(\\s|$)', 'gi');
el.className = el.className.replace(regex, ' ');
}
我的正则表达式只是找线或白空间,其次是“错误”的开头,后面紧跟空白或行结束。当然,我承认吸吮正则表达式:)
任何东西都跳出来了吗?
我比我更喜欢这个。 :P有一点值得注意的是,在这个例子中,你希望用空字符串('“”')替换,而不是在代码后面的部分用空格。 –
@约瑟夫:好点。否则,如果多次添加和移除类,空间会累积。 – user113716
如果您在该元素上有其他类名称,该怎么办? –