JSFiddle - React, Tailwind, and code Playground
by ysuper
HTML
<form class="form-inline" role="form">
<h3>序號數量即時統計</h3>
<input id='in' type="text">
<span style="font-size:18px;"> 輸入序號數量:</span>
<span style="font-size:18px;" id='out'>
</span>
</form>
JavaScript
$('#in').on('input', function (e) {
var serials = $("#in").val()
if (serials == "") {
$("#out").text("")
return
}
if (check_invalid(serials)) {
var serial_list = serials.split(',')
var count = 0
for (i = 0; i < serial_list.length; i++) {
if (serial_list[i] == "") {
$("#out").text("逗號兩側序號不得為空白,請檢查!")
return
} else {
if (serial_list[i].indexOf('-') == -1) {
count++
} else {
var serial_s = parseInt(serial_list[i].split('-')[0])
var serial_e = parseInt(serial_list[i].split('-')[1])
if (serial_s <= serial_e) {
count += serial_e - serial_s + 1
} else {
$("#out").text("減號後面序號不得比前面序號小,請檢查!")
return
}
}
}
}
$("#out").text(count)
}
});
function check_invalid(word) {
invalid_str = ""
for (var i = 0; i < word.length; i++) {
if ((word[i].indexOf('-') != -1) || (word[i].indexOf(',') != -1) || (parseInt(word[i]) >= 0 && parseInt(word[i]) <= 9)) {
// pass
} else {
invalid_str += word[i]
}
}
if (invalid_str == "") {
return true
} else {
$("#out").text(invalid_str + " 為無效字元,請檢查!")
return false
}
}