/*
------------------------------------------------ ----------------------------------
ファイル名: check.js
説明: 入力のチェックに使用される JavaScript スクリプトWebページ送信フォームのデータ
バージョン:1.0
*/
/*
目的: IP アドレスの形式を検証します。
入力: strIP: ip address
戻り値: 検証に合格した場合は true を返し、そうでない場合は false を返します。
*/
function isIP(strIP) {
if (isNull(strIP)) return false;
var re=/^(d+).(d+).(d+).(d+)$/g // IP アドレスに一致する正規表現
if(re.test(strIP))
{
if( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256)
return
true
;
/*
目的: 入力文字列が空かすべてスペースかを確認します
。 入力: str
戻り値:
すべて空の場合は true を返し、それ以外の場合は false を返します
*/
function isNull( str ){
if ( str == "" ) return true ;
var regu = "^[ ]+$";
var re = new RegExp(regu
)
;
/*
目的: 入力オブジェクトの値が整数形式に準拠しているかどうかを確認します
。 入力: str 入力文字列は、
検証に合格した場合は true、それ以外の場合は false を返します
。
*/
function isInteger( str ){
var regu = /^[-]{0,1}[0-9]{1,}$/;
return regu.test(str)
;
/*
目的: 入力された携帯電話番号
が正しく入力されているかどうかを確認します:
s: string
return:
検証に合格した場合は true、そうでない場合は false
*/
function checkMobile( s ){
var regu =/^[1][3][0-9]{9}$/;
var re = new RegExp(regu)
{
return true;
}else{
戻り値
}
}
/*
目的: 入力文字列が正の整数形式に準拠しているかどうかを確認します
。 入力:
s: string
return:
検証に合格した場合は true、そうでない場合は false
*/
function isNumber( s ){
var regu = "^[0-9]+$";
var re = new RegExp(regu);
if
(s.search(re) != -1) {
return true;
{
戻り値 false
}
}
/*
目的: 入力文字列が小数を含むデジタル形式であるかどうかを確認します。負の入力である可能性があります
:
s: string
return:
検証に合格した場合は true、そうでない場合は false
*/
関数 isDecimal( str ){
if(isInteger(str)) return true;
var re = /^[-]{0,1}(d+)[.]+(d+)$/
if (re .test(str)) {
if(RegExp.$1==0&&RegExp.
$
2==0) return
true
;
}
/*
目的: 入力オブジェクトの値がポート番号形式に準拠しているかどうかを確認します
。入力: str 入力文字列は、
検証に合格した場合は true、それ以外の場合は false を返します。
*/
function isPort( str ){
return (isNumber(str) && str<65536)
}
/*
目的: 入力オブジェクトの値が電子メール形式に準拠しているかどうかを確認します。
入力: str 入力文字列は、
検証に合格した場合は true、それ以外の場合は false を返します。
*/
function isEmail( str ){
var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+.)+[A-Za-z0-9]{ 2,3}$/;
if
(myReg.test(str)) 戻り
値 false;
/*
目的: 入力文字列が金額形式に準拠しているかどうかを確認します。
形式は小数点付きの正の数値として定義されており、
小数点以下は 3 桁まで入力できます。
s: string
return:
true 検証の場合。が渡される、それ以外の場合は false
*/
function isMoney( s ){
var regu = "^[0-9
]+[.][0-9]{0,3}$";
var re = new RegExp(regu);
(s)) {
return true;
} else {
return false;
}
}
/*
目的: 入力文字列が英語の文字、数字、アンダースコアのみで構成されているかどうかを確認します
。 入力:
s: string
return:
検証に合格した場合は true を返します
。falseを返す
*/
function isNumberOr_Letter( s ){// 数字か文字かを判断します
var regu = "^[0-9a-zA-Z_]+$";
var
re = new RegExp(regu)
{
return true;
}
else{
return false;
/*
目的: 入力文字列が英語の文字と数字のみで構成されているかどうかを確認します。
入力:
s: string
return:
検証に合格した場合は true、そうでない場合は false。
*/
function isNumberOrLetter( s ){// 数字か文字かを判断します
var regu = "^[0-9a-zA-Z]+$";
var re=
new RegExp(regu);
if (re.test(s)) {
return
true;
}
else{
return false;
目的: 入力文字列が中国語の文字、文字、数字のみで構成されているかどうかを確認します。
入力:
値: 文字列
戻り値:
検証に合格した場合は true、そうでない場合は false。
*/
function isChinaOrNumbOrLett( s ){// 漢字、文字、数字で構成されているかどうかを判断します
var regu = "^[0-9a-zA-Zu4e00-u9fa5]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false ;
}
}
/*
目的: 日付であるかどうかを判断します
input: date: date; fmt: date format
Return: 検証に合格した場合は true を返し、そうでない場合は false を返します
*/
function isDate(date, fmt) {
if (fmt==null) fmt="yyyyMMdd ";
var yIndex = fmt.indexOf("yyyy");
if
(yIndex==-1)
var year = date.substring(yIndex,yIndex+4);
"MM") ;
if(mIndex==-1)
var month = date.substring(mIndex,mIndex+2);
var dIndex = fmt.indexOf("dd")
; return false;
var day = date.substring(dIndex,dIndex+2);
if(!isNumber(year)||year>"2100" || year< "1900") return false
; |month>" 12" || month< "01") return false;
if
(day>getMaxDay(year,month) || day< "01") return
true;
function getMaxDay(year,month) {
if(month==4||month==6||month==9||month==11)
return "30"
if(month==2)
if(year%4 ==0&&year%100!=0 || year%400==0)
"29
" を返し、
それ以外の場合は
"31" を返します
。
/*
目的: 文字 1 が文字列 2 で終わるかどうか
入力: str1: 文字列; str2: 含まれる文字列
戻り値: 検証に合格した場合は true を返し、それ以外の場合は false を返します。
*/
function isLastMatch(str1,str2)
{
varindex = str1.lastIndexOf(str2);
if(str1.length==index+str2.length) return true
;
}
/*
目的: 文字 1 が文字列 2 で始まるかどうか
入力: str1: 文字列; str2: 含まれる文字列
戻り値: 検証に合格した場合は true を返し、それ以外の場合は false を返します。
*/
function isFirstMatch(str1,str2)
{
varindex = str1.indexOf(str2);
if(index==0) return true
;
}
/*
目的: 文字 1 は文字列 2 を含む
入力: str1: 文字列; str2: 含まれる文字列
戻り値: 検証に合格した場合は true を返し、そうでない場合は false を返します。
*/
function isMatch(str1,str2)
{
varindex = str1.indexOf(str2);
if(index==-1) return
true;
}
/*
目的: 入力された開始日と終了日が正しいかどうかを確認します。ルールは、2 つの日付の形式が正しく、
終了が予定どおりであることです >= 開始日
input:
startDate: start date, string
endDate: end asスケジュールされた文字列の
戻り値:
検証に合格した場合は true を返し、それ以外の場合は false を返します。
*/
function checkTwoDate( startDate,endDate) {
if( !isDate(startDate) ) {
alert("開始日が間違っています!");
return false;
} else if( !isDate(endDate) ) {
alert("終了日です)間違っています!");
return false;
} else if( startDate > endDate ) {
alert("開始日は終了日より大きくすることはできません!");
return false;
}
return true;
}
/*
目的: 入力された電子メールのメールボックス形式
が正しく入力されているかどうかを確認します:
strEmail: string
return:
検証に合格した場合は true、そうでない場合は false
*/
function checkEmail(strEmail) {
//var emailReg = /^[_a-z0-9]+@([_a-z0-9]+.)+[a-z0-9]{2,3}$ /;
var emailReg = /^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$/
; (strEmail) ){
return
true;
}else{
alter("
入力したメールアドレスの形式が間違っています!")
;
/*
目的: 入力された電話番号の形式が正しいかどうかを確認します
。入力:
strPhone: string
return:
検証に合格した場合は true、そうでない場合は false
*/
function checkPhone( strPhone ) {
var PhoneRegWithArea = /^[0][1-9]{2,3}-[0-9]
{5,10}$/;
{1}[0-9]{5,8}$/;
varprompt = "入力した電話番号が間違っています!"
if( strPhone.length > 9 ) {
if(phoneRegWithArea.test(strPhone) ){
return true ;
}else{
アラート(プロンプト)
;
}
else{
if(phoneRegNoArea.test(strPhone)){
}
else
(
プロンプト)
;
}
}
/*
目的: 選択されているチェック ボックスの数を確認します。
入力:
checkboxID: 文字列。
戻り値:
選択されているチェック ボックスの数を返します。
*/
function checkSelect( checkboxID ) {
var check = 0;
var i=0;
if( document.all(checkboxID).length > 0 ) {
for( i=0; i<document.all(checkboxID).length; i++ ) {
if( document.all(checkboxID).item( i ).checked ) {
チェック += 1
}
}
}else{
if( document.all(checkboxID).checked )
check = 1
}
return check
;
function getTotalBytes(varField) {
if(varField == null)
return -1;
var totalCount = 0;
for (i = 0; i< varField.value.length; i++) {
if (varField.value.charCodeAt(
i) > 127)
totalCount += 2;
else
totalCount
++
}
function getFirstSelectedValue( checkboxID ){
var value = null;
var i=0;
if( document.all(checkboxID).length > 0 ){
for( i=0; i<document.all(checkboxID).length; i++ ){
if( document.all(checkboxID).item( i ).checked ){
value = document.all(checkboxID).item(i).value
}
}
}
else {
if( document.all(checkboxID).checked; )
値 = document.all(checkboxID).value
}
戻り値
;
function getFirstSelectedIndex( checkboxID ){
var value = -2;
var i=0;
if( document.all(checkboxID).length > 0 ){
for( i=0; i<document.all(checkboxID).length; i++ ) {
if( document.all(checkboxID).item( i ).checked ) {
value = i
;
}
}
else {
if( document.all(checkboxID).checked )
value
= -1
;
}
function selectAll( チェックボックスID,ステータス ){
if(document.all(checkboxID) == null)
return;
if( document.all(checkboxID).length > 0 ){
for( i=0; i<document.all(checkboxID).length; i++ ){
document.all(checkboxID).item( i ).checked = ステータス;
}
}
else {
document.all(checkboxID).checked = ステータス
;
function selectInverse( checkboxID ) {
if( document.all(checkboxID) == null)
return;
if( document.all(checkboxID).length > 0 ) {
for( i=0; i<document.all(checkboxID).length; i++ ) {
document.all(checkboxID).item( i ).checked = !document .all(checkboxID).item( i ).checked;
}
}
else {
document.all(checkboxID).checked = !document.all(checkboxID).checked
;
function checkDate( value ) {
if(value=='') return true;
if(value.length!=8 || !isNumber(value)) return false;
var year = value.substring(0,4)
;年>"2100" || 年< "1900")
false を返します。
var month = value.substring(4,6);
if(month>"12" || month< "01") は false を返します。
var day = value.substring(6,8);
if(day>getMaxDay(year,month) || day< "01") return false;
true を返します
。
/*
目的: 入力された開始日と終了日が正しいかどうかを確認します。ルールは、2 つの日付の形式が正しいか、または両方が空であり
、終了日 >= 開始日であることです。
入力:
startDate: 開始日、文字列
endDate:終了日、文字列
return :
検証に合格した場合は true を返し、そうでない場合は false を返します。
*/
function checkPeriod( startDate,endDate) {
if( !checkDate(startDate) ) {
alert("開始日が間違っています!");
return false;
} else if( !checkDate(endDate) ) {
alert("終了日です)間違っています!");
return false;
} else if( startDate > endDate ) {
alert("開始日は終了日より大きくすることはできません!");
return false;
}
return true;
}
/*
目的: セキュリティ コード
が正しく入力されているかどうかを確認します:
secCode: セキュリティ コード
return:
検証に合格した場合は true、そうでない場合は false
*/
function checkSecCode( secCode ) {
if( secCode.length!
=6 ){
warning("セキュリティ コードの長さは 6 桁である必要があります")
;
if(!isNumber( secCode ) ){
alert("セキュリティ コードには数字のみを含めることができます");
偽を返します;
}
真を返します
;
/************************************************ ***** ***
function:cTrim(sInputString,iType)
description: 文字列パラメータからスペースを削除する関数
: iType: 1=文字列の左側のスペースを削除します
2=文字列の左側のスペースを削除
0=文字列の左側と右側のスペースを削除
戻り値: スペースを削除した文字列
******************* ***** ******************************/
function cTrim(sInputString,iType)
{
var sTmpStr = ' ';
変数 i = -1;
if(iType == 0 || iType == 1)
{
while(sTmpStr == ' ')
{
++i;
sTmpStr =sInputString.substr
(i
,1)
}
if(iType == 0 || iType == 2)
{
sTmpStr = ' ';
i = sInputString.length;
while(sTmpStr==
' ')
{
--i
;
sInputString = sInputString.substring(0,i+1)
}
sInputString を返します
。
/*
------------------------------------------------ ----------------------------------
説明: JavaScript スクリプト、フォーム内のデータ項目が開始されることを確認します
--- ---------------------------------------------------- ---- -----------------------
*/
関数 checkForm(objFrm){
var len = 0;
len = objFrm.elements.length;
var i = 0;
var objCheck;
//テキストボックス
for(i = 0; i < len; i ++){
objCheck = objFrm.elements[i];
if(objCheck.type == "text" && !f_checkTextValid( objCheck) ){
false を返します。
}
}
//ドロップダウンボックス
for(i = 0; i < len; i ++){
objCheck = objFrm.elements[i];
if(objCheck.type ==select-one" && !f_checkSelectValid(objCheck) ) {
偽を返します;
}
}
//期間は有効です
if( f_checkStartAndEndDate(objFrm) == false) return false;
return
true;
}
function f_checkSelectValid(obj){
//alert("チェック選択");
if(obj.options.length <= 0){
alert("ドロップダウン選択ボックスにデータがありません!");
関数
f_checkStartAndEndDate
(
frm){
var
len
==null
&& len == 0)
return
true
;
objEndDate;
//alert("開始日期間チェック");
try{
for(i=0; i< len ; i++){
objCheck = frm.elements[i]
;
if( temp.indexOf( "startDate") >0 ||temp.indexOf("beginDate")>0 )
objStartDate = objCheck;
if( temp.indexOf("endDate") > 0 )
objEndDate = objCheck;
}
//alert(objStartDate.value);
//alert(objEndDate.value);
if(objStartDate.value==null || objStartDate.value == || objStartDate.value ==null || objStartDate.value = = ""){
true を返す;
}
checkTwoDate(objStartDate.value, objEndDate.value);
//alert("終了日期間チェック");
}catch(E){}
return true
;
function f_checkTextValid(obj){
//空にすることはできません
if(obj.getAttribute("isNeed") != null){
if(f_isNotNull(obj) == false) return false
}
//長さを超えることはできません
if(obj. getAttribute ("maxlength") != null){
if(f_checkLength(obj) == false) return false;
}
var
checkType = obj.getAttribute("checkType")
; checkType == "") return true;
//
if (checkType.indexOf("number") >=0){
if(
f_isNumber(obj) == false) return false;
) false を返します。
}
//
if (checkType.indexOf("positive") >=0){
if(f_isNumber(obj) == false) return false;
if
(f_isPositive(obj)==false) return false;
checkType) == false) false を返します。
if (checkType.indexOf("date") >=0){
if(f_checkDate(obj) == false) false を返します
。
}
/*
switch(checkType){
case "数値": if(f_isNumber(obj) == false) return false;break;
case "日付": if(f_checkDate(obj) == false) return false;
break
;
*/
true を返します。
}
function f_isNotNull(obj){
if(obj.value == ""){
f_alert
(obj, "Null 値は許可
されません!");
return
true;
function f_isNumber(obj){
if(isNaN(obj.value)){
f_alert(obj,"数値型である必要があります");
return false;
true を返します
。
}
function f_checkDate(obj) {
if(checkDate(obj.value) ==false){
f_alert(obj,"有効な日付形式ではありません!")
;
true を返し
ます
。
function f_checkLength(obj){
if(getTotalBytes(obj) > Math.abs( obj.getAttribute("maxlength") ) ){
f_alert(obj,"長さ制限を超えました!")
;
true を返します
。
}
function f_alert(obj,alertStr){
var fielName = obj.getAttribute("fieldName");
if(fielName == null)
alert(fielName +"
n" +alertStr)
;
obj.focus()
;
function f_checkNumType(obj, numType){
//前提:数値型判定が行われている
var strTemp
;
var
numLen
= 19
;
try{
if(numType == null|| numType =="") return f_checkNumLenPrec(obj,defaultLen,defaultpric);
if(numType.indexOf("(") < 0 || numType.indexOf(")") < 0 ) return f_checkNumLenPreci(obj,defaultLen,defaultpric);
strTemp = numType.substr(numType.indexOf
("(") + 1 ,numType.indexOf(")") - numType.indexOf("(") -1 );
(strTemp == null||strTemp =="") return f_checkNmLenPrec(obj,defaultLen,defaultpric);
strArr = strTemp.split(",");
numLen = Math.abs( strArr[0] );
numpric = Math.abs( strArr[1] );
return f_checkNumLenPrec(obj,numLen, numpric);
}catch(e){
alert("in f_checkNumType = " + e);
return f_checkNumLenPrec(obj,defaultLen,defaultpric)
;
}
関数 f_checkNumLenPrec(obj, len, pric){
var numReg;
var
value = obj.value;
//alert(値 + "=====" + len + "====="+
価格
);
numReg =/[-]/;
strValueTemp = value.replace(numReg, "");
strValueTemp = strValueTemp.replace(numReg, "");
//integer
if(pric==0){
numReg =/[. ]/;
//alert(numReg.test(value));
if(numReg.test(value) == true){
f_alert(obj, "入力は整数型である必要があります!")
;
}
}
if(strValueTemp.indexOf(".") < 0 ){
//alert("lennth==" + strValueTemp);
if(strValueTemp.length >(len - pric)){
f_alert(obj, "整数の桁数は "+ (len - pric) +" ビットを超えることはできません")
;
}
}else{
strInt = strValueTemp.substr( 0, strValueTemp.indexOf(".") );
//alert("lennth==" + strInt);
if(strInt.length >(len - pric)){
f_alert(obj, "整数の桁数は "+ (len - pric) +" ビットを超えることはできません"
)
;
strDec = strValueTemp.substr( (strValueTemp.indexOf(".")+1), strValueTemp.length );
//alert("pric==" + strDec);
if(strDec.length > pric){
f_alert(obj, "小数点以下の桁数は "+ pric +" 桁を超えることはできません");
return false
}
}
trueを返します;
}
catch(e){
alert("in f_checkNumLenPrec = " + e)
;
}
function f_isPositive(obj){
var numReg =/[-]/;
if(numReg.test(obj.value
) == true){
f_alert(obj, "正の数である必要があります!")
return
;
真実 ;
}
/*
function selectedCheckboxCount(form)
関数の説明: フォーム内で選択されたオプションをカウントします。
パラメータの説明:
form: 指定されたフォーム
*/
function selectedCheckboxCount(form){
var length
=0;
var count =0
;
while(i<eles.length){
obj= eles. item(i);
//タイプ = obj.attributes.item("タイプ").nodeValue;
type = obj.type;
if(type == "checkbox"){
if
(
obj.checked){
count++
}
}
i++
;
//バイト長を取得する
関数 getByteLen(str)
{
var l = str.length;
for
( var i=0; i<l; i++ )
if ( str.charCodeAt(i) <0 || str.charCodeAt(i) >255 )
n=n+1;
return n
}
/*
手順:
1. テーブル内のデータをクリアします (0.0 と 0)。
2. セルにデータがない場合は、自動的にスペースが追加されます。
3. 空白行のチェックボックスをオフにします。
パラメータ:
clearzero: 「0」と「0.0」をクリアするかどうか、クリアしない場合は false、クリアする場合は true (デフォルトは true)
tablename: クリアするテーブルの名前、デフォルトは sortTable
*/
function clear_table(clearzero,tablename)
{
var tobject;
if (tablename==null)
tobject=gmobj("sortTable");
else
tobject=gmobj(tablename);
//テーブルが定義されていない場合、フィルタリングは実行されません。
if(tobject==null)
を返す;
//関数呼び出しパラメータが空の場合は、0 と 0.0 をクリアする必要があることを意味します。それ以外の場合、0 と 0.0 はクリアしないでください。
var clear = (clearzero==null)?true:clearzero;
//0, 0.0 をクリアし、スペースを埋めます
var rows = tobject.rows;
for
(var i=0;i<rows.length;i++)
{
//最初のセルの属性を取得します。 1 の場合、この行にデータがないことを示し、この行のすべてのデータをクリアします
while(tobject.rows[i].cells[j] != null)
{
if(clear)
{
if(tobject.rows[i].cells[j].innerHTML==0 ||tobject.rows[i]. cell[j].innerHTML==0.0||tobject.rows[i].cells[j].innerHTML=="")
tobject.rows[i].cells[j].innerText=" "
}
else
{
if (tobject.rows[i].cells[j].innerHTML=="")
tobject.rows
[i]
.cells[j]
.innerText=" "
;
true を返し
ます
。
function gmobj(mtxt) /* オブジェクト名でオブジェクトを取得 */
{
if (document.getElementById) {
m=document.getElementById(mtxt)
} else if (document.all) {
m=document.all[mtxt]
;
else if(
document.layers) {
m
=document.layers[mtxt]
}
/*
------------------------ -------------------------------------------------- ---
説明: JavaScript スクリプト、フォームのデータ項目を確認します
。 --------------------------------------------------
*/
/*
目的: 入力文字列が小数を含む数値形式であるかどうかを確認します。負の数であってもよい (指定された精度を満たしている)
input: str: 文字列
l: 合計桁数
d: 小数点以下の桁数
Return :
検証に合格した場合は true、それ以外の場合は false を返します。
*/
function isDecimal( str,l,d ){
if(isInteger(str)) {
if (l==null) return true;
if (str<0) l--;
if (str.length<=l) return真実;
}
var re = /^[-]{0,1}(d+)[.]+(d+)$/;
if (re.test(str)) {
if (l==null) が true を返します
。 (d==null) d=0;
if(RegExp.$1==0&&RegExp.$2==0)
if (RegExp.$1.length+RegExp.$2.length<=l
&& RegExp.$2.length<)
=d
) true を返す
;
}
onclick="isNull('Co.PageForm.CompetitorName');"