AJAX для ввода даты ввода: дата не подтверждает требуемый формат yyyy-mm-dd

Оператор == проверяет, указывают ли две ссылки на один и тот же объект или нет. .equals() проверьте фактическое содержимое строки (значение).

Обратите внимание, что метод .equals() принадлежит классу Object (суперкласс всех классов). Вам необходимо переопределить его в соответствии с вашим требованием к классу, но для String оно уже реализовано и проверяет, имеет ли две строки одно и то же значение.

  • Случай 1
    String s1 = "Stack Overflow";
    String s2 = "Stack Overflow";
    s1 == s2;      //true
    s1.equals(s2); //true
    
    Причина: строка литералы, созданные без нуля, хранятся в пуле строк в области перментонов кучи. Таким образом, оба s1 и s2 указывают на один и тот же объект в пуле.
  • Случай 2
    String s1 = new String("Stack Overflow");
    String s2 = new String("Stack Overflow");
    s1 == s2;      //false
    s1.equals(s2); //true
    
    Причина. Если вы создаете объект String с использованием ключевого слова new, ему выделяется отдельное пространство в куче.
1
задан FullTiltBoogie 13 July 2018 в 11:11
поделиться

1 ответ

\r\n - это возврат каретки, символ новой строки и два пробела в начале вашей даты. Попробуйте использовать trim ..

$('#endDate').val($.trim(value));
1
ответ дан Brian Patterson 17 August 2018 в 13:05
поделиться
  • 1
    Большое спасибо - я попытался обрезать PHP, и это не повлияло, но вы абсолютно правы - обрезка в JavaScript / jQuery решает проблему. Большое спасибо. Боюсь, что у меня еще недостаточно очков репутации (!), Чтобы повысить, но ваше решение - одно. – FullTiltBoogie 13 July 2018 в 17:46
Другие вопросы по тегам:

Похожие вопросы: