amarasat Ответов: 2

Удалить двойные кавычки из строки


Сценарий:

У меня есть два входных текста, мне нужно получить введенные пользователем значения из входных текстов. Объедините их и получите из них дату java script


Код
var UserStartTime = Control1.value;//string hh,mm,ss
var UserStartDate = Control2.value//string yyyy,mm,dd

var DateString = UserStartDate +","+ UserStartTime;//string ex:2013,11,14,03,00,00
var newTime = (new Date(DateString));//this fails and returns invalid date



Вопрос:

Код возвращает недопустимую дату из-за двойных кавычек. Значение DateString = "2013,11,14,03,00,00". Как удалить двойные кавычки из этой строки и преобразовать это значение в JS date?

То, что я пробовал до сих пор и не сработало:
var NonQuotesVaraible = new String(DateString);
var temp = Number(NonQuotesVaraible );

DateString.replace(/"/g, ""); 

DateString.replace(/["]/g, "");

DateString.replace(/\"/g, "");

JSON.parse(DateString);

DateString.replaceAll("^\"|\"$", "");

DateString.replace("\"","");

DateString.valueOf();

In all the cases double quotes are still present.

Sergey Alexandrovich Kryukov

Это не проблема. Проблема в следующем: как получилось, что нежелательные символы попали в вашу строку в первую очередь? Не лучше ли предотвратить это? Обычные форматы дат не имеют ""...
—СА

amarasat

Я не понимаю, что вы подразумеваете под нормальными форматами дат? Пользователь ввел текст (2013,11,14) в текстовое поле ввода html. Когда я назначаю переменную (xyz) и получаю значение входного текстового поля из DOM, как xyz = element.value. Тогда xyz-это "2013,11,14" с кавычками, а не 2013,11,14

2 Ответов

Рейтинг:
0

Mitchell J.

Когда вы используете

DateString.replace("\"","");

возможно, вам следует использовать...
DateString = DateString.replace("\"","");

Это будет иметь большое значение, потому что строка.Заменять() возвращается модифицированная строка, она не изменяет строку, на которую вы ее вызываете.


Sergey Alexandrovich Kryukov

5ед. Мы отвечали с каждой секундой... :-)
—СА

amarasat

CraigDJ, конечно же, я использовал DateString = DateString.replace("\"","");. я просто не скопировал и не вставил сюда всю строку кода.

DateString = DateString.replace("\"",""); это не удаляет двойные кавычки

Sergey Alexandrovich Kryukov

Крэгедж,

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

(Вздыхать...)

—СА

Рейтинг:
0

Sergey Alexandrovich Kryukov

Это будет работать, чтобы удалить все вхождения ":

DateString = DateString.replace(/"/g, '');


Похоже, у вас уже был подобный вариант. Плохо то, что вы пытаетесь использовать метод проб и ошибок, в то время как вы могли бы скорее прочитать какой-то справочный документ и просто подумать несколько секунд: http://www.w3schools.com/jsref/jsref_replace.asp[^].

Теперь, пожалуйста, смотрите мой комментарий к этому вопросу. Я не понимаю, почему эти нежелательные символы должны появляться в вашей строке в первую очередь.

—СА


amarasat

Нет, это тоже не сработало.

EndDateAndTime = "2013,11,14,03,00,00";
EndDateAndTime = EndDateAndTime.replace(/"/g, ");
var CurrentTime = (новая дата(EndDateAndTime));
Значение значение currentTime дата {некорректная дата}

Sergey Alexandrovich Kryukov

Вы, вероятно, даже не понимаете: в строке в вашем первом выражении там нет символов кавычек Слушайте внимательно: здесь
EndDateAndTime = "2013,11,14,03,00,00";
То объект EndDateAndTime имеет нулевой счет ". Ноль! Там никого нет.

Все работает.

Ты наконец-то понял, в чем дело? Вы путаете элементы синтаксиса JavaScript с содержимым объекта memory is operates.
Весь ваш вопрос не имеет никакого смысла.

—СА

amarasat

вы сказали: "все работает". Ладно, может быть, я неправильно понял струны. Чтобы лучше объяснить это, я построил этот jsfiddle.

http://jsfiddle.net/GV4Ww/8/

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

Смотрите как Show2 sjhows дату но Show показывает и недопустимую дату

Sergey Alexandrovich Kryukov

(Вздыхать...) Связь не работала...
—СА

amarasat

Извините, СА, я думаю, что обновил ссылку через некоторое время. Его

http://jsfiddle.net/GV4Ww/9/. Вы уверены, что это та связь, которая не сработала?

Sergey Alexandrovich Kryukov

Теперь это работает. "Показать" показывает "неверная дата", "Show2" показывает правильную дату. Никаких " вообще.
Слушай, а зачем вообще на это смотреть? Я уже ответил на ваш вопрос, ответил правильно и протестировал свой код.
Если вы испытали его неправильно, это не делает его неправильным.
—СА