我想創建一個正則表達式,它指向我的字符串中不是0-9
(數字)或-
(短劃線)的任何字符。我的下面的正則表達式有什麼問題?僅過濾出0-9和破折號?
正則表達式:
regex = '/^[0-9-]/g';
JS實現:
$(this).val($(this).val().replace(regex, ''));
我想創建一個正則表達式,它指向我的字符串中不是0-9
(數字)或-
(短劃線)的任何字符。我的下面的正則表達式有什麼問題?僅過濾出0-9和破折號?
正則表達式:
regex = '/^[0-9-]/g';
JS實現:
$(this).val($(this).val().replace(regex, ''));
我想你的意思是你^
是內字符類。另外,regexes are not strings:
regex = /[^0-9-]/g;
$(this).val($(this).val().replace(regex, ''));
你需要把 '^' 括號內和逃生 ' - ',它是一個特殊字符。您正則表達式應該是
regex = /[^0-9\-]/g
你不需要轉義'-'。 –
不,在字符類的開始或結尾,'-'不需要被轉義。你甚至不需要在範圍後面('[a-c-A-C]')或者直接在一個簡短的字符類('[\ d- \ w]')之後直接轉義它。 –
@Tomalak,你的評論,它不需要逃脫可能會被解釋不同於你的意思。你的意思是它不需要在_this_的情況下被轉義,而你的評論可以被解釋爲它永遠不需要在類內轉義,這是不正確的(我知道_你知道這個......)。 –
正則表達式不是字符串。 –
意識到這一點,只顯示我的正則表達式實現 – Industrial
如果你「知道這一點」,那麼爲什麼你的正則表達式是一個字符串? –