2016-03-30 2 views
-1

Я хочу заменить #### на ## - ## (#: = любой символ цифры).RegExp replace не заменяет шаблон

if (/^([0-9]{2})([0-9]{2})$/.test(str)) {  
    str = str.replace("/^([0-9]{2})([0-9]{2})$/", "$1-$2"); 
    console.log(str); 
} 

В консоли я получаю #### (не ## - ##).
Что я делаю неправильно?

ответ

3

Вам необходимо пройти регулярное выражение для замены функции не строка - в вашем случае, если вы пытаетесь заменить строку буквального /^([0-9]{2})([0-9]{2})$/

str = str.replace(/^([0-9]{2})([0-9]{2})$/, "$1-$2"); 

var str = '4455'; 
 
snippet.log('before: ' + str); 
 
str = str.replace(/^([0-9]{2})([0-9]{2})$/, "$1-$2"); 
 
snippet.log('after: ' + str);
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

Смежные вопросы