Это может помочь; обратите внимание, что он игнорирует все после 10-го символа и не проверяет фактические значения даты для достоверности (например, вы можете сказать 45/96/2543, и это будет действительным).
setInterval(check,100);
function check(){
var date=document.getElementById("date").innerHTML;
if(!isNaN(parseInt(date.charAt(0), 10))&&!isNaN(parseInt(date.charAt(1), 10))&&date.charAt(2)=="-"&&date.charAt(5)=="-"&&!isNaN(parseInt(date.charAt(3), 10))&&!isNaN(parseInt(date.charAt(4), 10))&&!isNaN(parseInt(date.charAt(6), 10))&&!isNaN(parseInt(date.charAt(7), 10))&&!isNaN(parseInt(date.charAt(8), 10))&&!isNaN(parseInt(date.charAt(9), 10))){
document.getElementById("output").innerHTML="Yes Date";
} else {
document.getElementById("output").innerHTML="No Date";
}
}
<pre>
<p contenteditable='true' id='date' style='border:1px solid black;'>Edit me</p>
<p id='output'></p>
</pre>
Вы имеете в виду, как '<входной тип =«Дата»/>' в HTML5 – rapidRoll
нет, это не вход, я должен использовать его с contenteditable тега, так как его редактируемые свойство динамический и может измениться на false. – chandan7
Вы можете добиться этого, применив некоторые ограничения на прием строки. – rapidRoll