[英]Javascript regex special characters
我有一個要從字符串中刪除的特殊字符列表,該列表如下:(以空格分隔)
! % & \\ ' ( ) * + - . / ; < = > ? \\\\ , : # @ \\t \\r \\n " [] _
我試圖像這樣替換函數,但是遇到//
, \\t
, \\r
, \\n
和[]
這樣的字符
var input = 'test ! % & \ ' ( ) * + - . / ; < = > ? \\ , : # @ \t \r \n " [] _ test';
input.replace(/[!%&\'()*+-./;<=>?\\,:#@\t\r\n"[]_][\u007B-\u00BF]/g, "");
有沒有更好的方法來正確執行此操作? 還是可能以某種方式將數組用作受限字符?
這是您可以使用的正則表達式:
var input = 'test ! % & \\\\ \\' ( ) * + - . / ; < = > ? \\\\ , : # @ \\t \\r \\n " [] _ test'; alert(input.replace(/[!%&'()*+./;<=>?\\\\,/:#@\\t\\r\\n"\\[\\]_\{-\¿-]/g, ""));
請注意,您需要在JS正則表達式字符類中轉義[
和]
。 連字符應放在最后或轉義。 另外,我想您也想刪除\{-\¿
范圍內的字符,因此我將2個字符類“合並”為1個。
var re = /[a-z()!%$\\@<>=?\/.-;,#\[\]_\*\&\+\-\"]/g;
var str = 'test ! % & \ \' ( ) * + - . / ; < = > ? \\ , : # @ \t \r \n " [] _ test';
var m;
while ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.