我正在研究一個項目,目前無法有任何第三方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
如果您在該元素上有其他類名稱,該怎麼辦? –