JQuery обрезать текстовое значение и формат - PullRequest
0 голосов
/ 15 июня 2011

У меня есть несколько jquery, который захватывает идентификатор элемента и помещает его в текстовое поле

Идентификатор текстового поля устанавливается автоматически, поэтому я не могу его изменить.

Я пытаюсь обрезать идентификатор, а затем отформатировать его так, чтобы он читался правильно

Вот мой HTML

<a id="day_2294_110_2011-6-2" class="weekday" href="javascript:;">Day</a>

<input type="text" id="therapydate" />

И мой JQuery

$('.weekday').click(function() {

    $('#therapydate').val($(this).attr('id'));

});

Это помещает значение моего текстового поля в day_2294_110_2011-6-2, но я хотел бы удалить это day_2294_110_ и просто оставить с 2011-6-2, а затем отформатировать это как дату как 2nd June 2011 или 02/06/2011

Возможно ли это?

Спасибо

Ответы [ 6 ]

4 голосов
/ 15 июня 2011

Попробуйте это (дает вам дату в формате ММ / ДД / ГГГГ):

var id = $('#therapydate').val($(this).attr('id')); 
var requiredOP = id.replace(/.*_(\d+)-(\d+)-(\d+)$/, '$2/$3/$1');

Рабочий пример: http://jsfiddle.net/L42Lq/

0 голосов
/ 15 июня 2011

Вы можете split() на подчеркивании и получить последний элемент в массиве:

var id = $(this).attr('id'));
var parts = id.split('_');
var datePart = parts[parts.length-1];

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

var id = $(this).attr('id'));
var index = id.lastIndexOf('_') + 1;
var datePart = id.substr(index);

Существует много документации по форматированию даты.Просто погуглите.Например: http://plugins.jquery.com/project/jquery-dateFormat

0 голосов
/ 15 июня 2011

Ну, вы можете получить дату внутри этого идентификатора разными способами.Вы можете попробовать использовать regExp, split per '-' или даже использовать функцию подстроки.После этого, чтобы правильно отформатировать дату, вы можете попробовать это: http://docs.jquery.com/UI/Datepicker/formatDate

0 голосов
/ 15 июня 2011

Используйте решение @ Cybernate.

$('.weekday').click(function() {
    var date = $(this).attr('id');
    $('#therapydate').val(date.slice(date.lastIndexOf("_")+1, date.length));
});

Попробуйте здесь

0 голосов
/ 15 июня 2011

попробуйте что-то вроде этого:

var date = new Date ("day_2294_110_2011-6-2".substring(13, 21)).toUTCString();
0 голосов
/ 15 июня 2011

В этом случае вы можете использовать метод string.split (), чтобы разбить его на массив, в этом случае массив будет содержать 4 элемента, а последний элемент - это нужный фрагмент.

Что-токак:

    var splitId = $(this).attr('id').split('_');
    $('#therapydate').val(splitId[3]);
...