2013-11-23 2 views
1

Скажем, у меня есть строка даты в виде «11.23.13», и я хочу заменить каждую точку «/», чтобы она выглядела «11»/23/13" .Как заменить каждую точку в строке на «/» в JavaScript

Вот мой код, но он работает неправильно, потому что регулярное выражение видит "." и интерпретирует это как сопоставление каждого отдельного символа вместо новых строк. Поэтому вместо «11/23/13» я получаю «////////».

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>RegExMatchDot</title> 
    <script type="text/javascript"> 
     var myDate = "11.23.13"; 
     var myDateWithNewSeparator = myDate.replace(new RegExp(".", "g"), "/"); 
     console.log("my date with new date separator is: ", myDateWithNewSeparator); 
    </script> 
</head> 
<body> 

</body> 
</html> 

Кто-нибудь знает дорогу вокруг этой проблемы? Благодаря!

+0

Вам нужно избежать символа периода в регулярном выражении. 'new RegExp (" \\. "," g ")' –

ответ

3

Вы можете настроить таргетинг на все периоды с регулярным выражением, которое использует глобальный модификатор, просто помните, чтобы избежать периода в периоды имеют особое значение в регулярном выражении (как вы испытали, они любой символ):

var myDate = "11.23.13"; 
var myDateWithNewSeparator = myDate.replace(/\./g, '/'); 
+0

Работает отлично! Благодаря! – SpartaSixZero

2

быстрый способ сделать заменяет, как это без регулярных выражений, чтобы использовать раскол и присоединиться, так что было бы:

myDate.split('.').join('/'); 

Верьте или нет, это используется, чтобы быть быстрее, чем заменить, но не больше, в любом случае я бы изучил регулярное выражение, но для крошечных замен это вполне достаточно ,

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