- //===========验证函数 start
- var isIE = false;
- var isFF = false;
- var isSa = false;
- if ((navigator.userAgent.indexOf("MSIE") > 0) && (parseInt(navigator.appVersion) >= 4)) {
- isIE = true;
- }
- if (navigator.userAgent.indexOf("Firefox") > 0) {
- isFF = true;
- }
- if (navigator.userAgent.indexOf("Safari") > 0) {
- isSa = true;
- }
- //作用:控制职能输入数字
- function onlyNumber(e) {
- var key;
- iKeyCode = window.event ? e.keyCode : e.which;
- if (!(((iKeyCode >= 48) && (iKeyCode <= 57)) || (iKeyCode == 13) || (iKeyCode == 46) || (iKeyCode == 45) || (iKeyCode == 37) || (iKeyCode == 39) || (iKeyCode == 8))) {
- if (isIE) {
- e.returnValue = false;
- } else {
- e.preventDefault();
- }
- }
- }
- // 文本框: <input type="text" maxlength="8" Class="input" name="txtName" οnkeypress="return onlyNumber(event)" style="ime-mode:Disabled" size="25"/>
- /*
- 禁止提交非小数或非整数,需要三个步骤:
- 1.文本框事件 οnkeypress="return onlyNumber(event)"
- 2.文本框样式 style="ime-mode:Disabled"
- 3.在提交函数save()里,添加
- if (validateNumber('txtName')){
- document.form1.submit();
- }
- */
- //如果包含非数字,则返回false。允许输入小数点
- function validateNumber() {
- var len = arguments.length;
- var flag = true;
- for (var i = 0; i < arguments.length; i++) {
- flag = numericCheck(arguments[i]);
- }
- return flag;
- }
- //作用:只允许输入数字,并提示发现若干个个不可接受的字符
- function numericCheck(parameter) {
- var el = document.getElementById(parameter);
- nr1 = document.getElementById(parameter).value;
- flg = 0;
- str = "";
- spc = "";
- arw = "";
- for (var i = 0; i < nr1.length; i++) {
- cmp = ".0123456789";
- tst = nr1.substring(i, i + 1);
- if (cmp.indexOf(tst) < 0) {
- flg++;
- str += " " + tst;
- spc += tst;
- arw += "^";
- } else {
- arw += "_";
- }
- }
- if (flg != 0) {
- if (spc.indexOf(" ") > -1) {
- str += "和空格";
- }
- var prevNode = el.parentNode.previousSibling.innerText;
- alert(prevNode+"只允许输入数字,发现" +flg+"个不可接受的字符/n");
- el.select();
- el.focus();
- return false;
- } else {
- return true;
- }
- }
- //作用:判断日期是否合法,能够有效的验证闰年,支持的日期格式有:2009-01-01、2009/01/01两种格式
- //参数:dateValue
- function IsDate(dateValue) {
- var regex = new RegExp("^(?:(?:([0-9]{4}(-|/)(?:(?:0?[1,3-9]|1[0-2])(-|/)(?:29|30)|((?:0?[13578]|1[02])(-|/)31)))|([0-9]{4}(-|/)(?:0?[1-9]|1[0-2])(-|/)(?:0?[1-9]|1//d|2[0-8]))|(((?:(//d//d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))(-|/)0?2(-|/)29))))$");
- if (!regex.test(dateValue)) {
- return false;
- } else {
- return true;
- }
- }
- //作用:比较日期,目前只支持“年-月-日”格式,如果sEndDate晚于sBeginDate,返回true,
- //参数:sBeginDate
- // sEndDate
- function compareDate(sBeginDate, sEndDate) {
- var strdt1 = sBeginDate.replace("-", "/");
- var strdt2 = sEndDate.replace("-", "/");
- var dt1 = new Date(Date.parse(strdt1));
- var dt2 = new Date(Date.parse(strdt2));
- if (dt1 <= dt2) {
- return true;
- } else {
- return false;
- }
- }
- //===========验证函数 end
- //字符串操作函数
- String.prototype.trim = function () {
- return this.replace(/(^/s*)|(/s*$)/g, "");
- };
- String.prototype.ltrim = function () {
- return this.replace(/(^/s*)/g, "");
- };
- String.prototype.rtrim = function () {
- return this.replace(/(/s*$)/g, "");
- };
- //作用:删除左右两端的空格
- //参数:str,待处理的字符串
- function trim(str) {
- return str.replace(/(^/s*)|(/s*$)/g, "");
- }
- //作用:删除左边的空格
- //参数:str,待处理的字符串
- function ltrim(str) {
- return str.replace(/(^/s*)/g, "");
- }
- //作用:删除右边的空格
- //参数:str,待处理的字符串
- function rtrim(str) {
- return str.replace(/(/s*$)/g, "");
- }
- //作用:去除左右空格,判断得出值的长度是否为0,是则true,大于0则false
- //参数:value
- function ifValueLengthIsZero(value) {
- var v = trim(value);
- if (v.length < 1) {
- return true;
- }
- return false;
- }
- //作用:字符串操作函数,数字校检
- //使用范例:<input type="text" name="Code" size="10" maxlength="6" OnKeyPress="Javascript:NumInputOnly();"
- function NumInputOnly() {
- if (event.keyCode > 57 || event.keyCode < 48) {
- event.keyCode = 0;
- }
- }
- //作用:判断是否为输入整数
- //参数:s,传入字符串
- function isInt(s) {
- if (s.value == "") {
- return true;
- }
- var chk = parseInt(s.value, 10);
- if (chk != s.value || chk < 0) {
- alert("该字段应是正整数!");
- s.focus();
- s.select();
- return false;
- }
- return true;
- }
- //作用:浮点数输入判断
- //参数:obj传入参数
- function isFloat(obj) {
- if (obj.value == "") {
- return true;
- }
- var chk = parseFloat(obj.value);
- if (chk != obj.value) {
- alert("该字段应是整数或小数!");
- obj.focus();
- obj.select();
- return false;
- }
- return true;
- }
- //作用:获得字符串串长度
- //参数:value,传入字符串
- function strLen(value) {
- var str, Num = 0;
- for (var i = 0; i < value.length; i++) {
- str = value.substring(i, i + 1);
- if (str <= "~") {
- Num += 1;
- } else {
- Num += 2;
- }
- }
- return Num;
- }
- //作用:最小长度 (不能为空)
- //参数:value,传入字符串
- function vMinlength(obj, minlength) {
- if (trim(obj.value).length < minlength) {
- obj.focus();
- obj.select();
- return false;
- }
- return true;
- }
- //作用:最大长度 (不能为空)
- //参数:value,传入字符串
- function vMaxlength(obj, maxlength) {
- if (trim(obj.value).length > maxlength) {
- obj.focus();
- obj.select();
- return false;
- }
- return true;
- }
- //作用:判断输入时是否超过了数据库设定的字符长度
- //参数:Str,页面上的字段
- // ValidStrLength,数据库设置的长度
- // StrName,表示是什么字段名称
- //调用指南:
- /* if (!TrueLength(vcjlzdbdh.value,50,"证书编号")){
- vcjlzdbdh.focus();
- return(false);
- }
- 若超过长度,则会弹出“您输入的 证书编号 长度超过最大允许值。”的提示
- */
- function TrueLength(Str, ValidStrLength, StrName) {
- var r;
- var i;
- var count = 0;
- var ret;
- for (i = 0; i < Str.length; i++) {
- r = Str.charCodeAt(i, 1);
- if (r > 255) {
- count = count + 2;
- } else {
- count = count + 1;
- }
- }
- if (count > ValidStrLength) {
- alert("您输入的 "+StrName+" 长度超过最大允许值。");
- ret = false;
- } else {
- ret = true;
- }
- return ret;
html中常用JavaScript验证表单文本域方法,如日期、字符串、数字等
最新推荐文章于 2024-04-24 09:22:16 发布