Я использую угловой набор времени для выбора даты, чтобы получить дату. Я сохраняю дату в строковой переменной. Проблема в том, что я хочу, чтобы дата была отрезана в очень конкретном формате. Я не знаю регулярное выражение, и я думаю, что это правильный способ сделать это в javascript? Может ли кто-нибудь сказать мне регулярное выражение, которое я могу написать в функции, которая будет обрезать входные данные на конкретный вывод, используя только собственный javascript. например, вход:
Четверг sep 20-2-2015 00:00:00 GMT (+5: 00) Пакистанское стандартное время.
Выход должен быть:
20-2-2015 00:00:00.
Большое спасибо!
Это должно дать вам то, что вы хотите:
var date = "Thursday sep 20-2-2015 00:00:00 GMT (+5:00) Pakistan Standard Time";
var expectedDate = date.match(/\d{1,2}-\d{1,2}-\d{4}\s\d{2}:\d{2}:\d{2}/g);
\d
для цифр [0-9]
. \d{1,2}
говорит, что встречаются цифры, минимум 1, максимум 2. Тогда у вас есть -
символы, как в строке. \s
для пробелов. \d{4}
говорит, соответствует ровно 4 случаям. И, наконец, /g
для глобального сопоставления.
<html>
<body>
<script language=javascript>
var txt='Thursday sep 20-2-2015 00:00:00 GMT (+5:00) Pakistan Standard Time';
var re1='.*?'; // Non-greedy match on filler
var re2='(20-2-2015)'; // DDMMYYYY 1
var re3='(\\s+)'; // White Space 1
var re4='(00:00:00)'; // HourMinuteSec 1
var p = new RegExp(re1+re2+re3+re4,["i"]);
var m = p.exec(txt);
if (m != null)
{
var ddmmyyyy1=m[1];
var ws1=m[2];
var time1=m[3];
document.write("("+ddmmyyyy1.replace(/</,"<")+")"+"("+ws1.replace(/</,"<")+")"+"("+time1.replace(/</,"<")+")"+"\n");
}
</script>
</body>
</html>