2015-02-19 15 views
0

Я хочу, чтобы регулярное выражение соответствует строке, как этот "(192)"Regular Expression: заменить строку в JavaScript

строка начинается с "(" и заканчивается ")" и номера от От 0 до 9 идут между круглыми скобками.

Я пробовал эту функцию раньше, но он не работает:

function remove_garbage_numbers(str) { 
    var find = '^\([0-9]\)$'; 
    var re = new RegExp(find, 'g'); 

    return str.replace(re, ''); 
} 

ответ

1

Вам не нужно передать это RegExp конструктор. При использовании якорей не требуется модификатор g. И, когда используются анкеры, можно использовать многострочный модификатор m.

var find = /^\([0-9]+\)$/m; 

т.е.

function remove_garbage_numbers(str) { 
    var re = /^\([0-9]+\)$/m; 
    return str.replace(re, ''); 
} 

ИЛИ

var re = new RegExp("^\\([0-9]+\\)$", 'm'); 

т.е.

function remove_garbage_numbers(str) { 

    var re = new RegExp("^\\([0-9]+\\)$", 'm'); 

    return str.replace(re, ''); 
} 

Update

> "Main (191)|Health & Beauty (6)|Vision Care (8)".replace(/\(\d+\)/g, "") 
'Main |Health & Beauty |Vision Care ' 
+0

Ну, вам также необходимо изменить строку 're' с этим решением. – epascarello

+0

@epascarello done .... –

+0

Может ли это быть упрощено до 'str.replace (/^\ ([0-9] \) $/g, '')'? – Scott