28,390
社区成员
发帖
与我相关
我的任务
分享
<%
a= 1
While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))
ps & a = Recordset1.Fields.Item("SNStart")
pe & a = Recordset1.Fields.Item("SNEnd")
Response.Write(ps & a &"<br/>")
Response.Write(pe & a &"<br/>")
a =a + 1
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Recordset1.MoveNext()
Wend
%>
<input name="sn" onblur="ck_sn(this.value)">
<script>
function ck_sn(val) {
if (val.length != "LS202003R550ASF0001".length) {
alert("sn长度错误")
return false;
}
let snArr = [
["LS202003R550ASF", 0001, 3000],
["LS202004R550ASF", 0001, 9300]
]
for (let sn of snArr) {
if (val.substr(0, sn[0].length) == sn[0]) { //判断填写的sn的前面几位字符串是否设定的相同,如果相同则
let num = Number(val.substr(sn[0].length)) ///将填写sn前面相同的剔除,并转为数字
if(sn[1]<=num && num<=sn[2]){
alert("sn符合要求")
return true;
}
}
}
return false
}
</script>
这样前台做了判读,后台只需要判断是否重复提交即可
SELECT .......
WHERE LEFT('LS202003R550ASF0003', 15) = LEFT(SNStart,15)
AND (
CINT(RIGHT('LS202003R550ASF0003', 4)) >= CINT(RIGHT(SNStart, 4)) AND
CINT(RIGHT('LS202003R550ASF0003', 4)) <= CINT(RIGHT(SNEnd, 4))
)