提供的代碼的目的是在當時以動態方式建立一個年齡在15到60歲之間的範圍,並且它可以工作。現在,使用HTML5的輸入標籤的好處模式屬性,我想知道是否擺脫了javascript,並且只使用模式屬性上的正則表達式來執行此操作。在JavaScript中使用正則表達式計算輸入年份的出生年份有可能嗎?
HTML代碼:
<body>
<div class="test">
<form action="test.html" method="post">
<table>
<tbody>
<tr>
<th colspan="3">DATE</th>
</tr>
<tr>
<td>
<input id="YEAR" name="R4" value="" placeholder="YEAR" type="text" required="required" pattern="^(19[4-9]{1}[0-9]{1}|200[1]{1})$">
<input id="MONTH" name="R6" value="" placeholder="MONTH" type="text" required="required" pattern="^0[1-9]|1[0-2]$">
<input id="DAY" name="R7" value="" placeholder="DAY" type="text" required="required" pattern="^0[1-9]|1\d|2\d|3[0-1]$">
</td>
</tr>
<tr>
<td colspan="3">
<button name="insert" type="button" onclick="dob()">INSERT</button>
</td>
</tr>
</tbody>
</table>
</form>
</div>
</body>
CSS代碼:
@CHARSET "UTF-8";
body {
margin: 0;
padding: 0;
background: #D0D0D5;
font-family: monospace;
font-size: 16px;
}
input {
width: 49px;
height: 15px;
font-size: small;
}
button[type="button"] {
width: 100%;
height: 25px;
margin-left: auto;
margin-right: auto;
}
.test {
position: absolute;
width: 200px;
top: 10px;
left: 15px;
border: 1px solid grey;
border-radius: 6px;
box-shadow: 3px 3px #383333
}
** JavaScript代碼:Calculate age in JavaScript
function dob() {
var year = document.getElementById('YEAR').value;
var month = document.getElementById('MONTH').value;
var day = document.getElementById('DAY').value;
var today = new Date();
var age = today.getFullYear() - year;
if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) {
age--;
}
alert(age);
}
:**
從得到 在此先感謝。
正則表達式是不打算做數學。但即使他們可以,你的日期是通過三個單獨的字段輸入的,每個字段都有其自己的模式屬性,不知道其他字段。 (並且CSS是否真的與你的問題有關?) – nnnnnn
爲什麼在這個世界上,你甚至想*做到這一點? – gravityplanx
HTML5模式將對輸入字段值進行驗證,就是這樣。正如@nnnnnn所說,你可以用它們計算任何東西...... – ericbn