正規表現の基本文法詳細
正規表現は、普通の文字(例えば、aからzまでの間の文字)と特殊な文字(「元文字」と呼ばれる)を含むテキストモードです。パターン記述は、テキストを検索する際にマッチする1つ以上の文字列です。
1.正規表現の基本文法
二つの特殊な記号'^''と'$彼らの役割は文字列の開始と終了をそれぞれ指摘することです。例は以下の通りです
「^The」:「The」で始まるすべての文字列(「The」「The cat」など)を表します。
「of despair」:だから「of despair」で終わる文字列を表します。
「^abc$」:始まりと終わりが「abc」の文字列であることを示します。ほほほ、「abc」だけが自分です。
「notice」:任意の「notice」を含む文字列を表します。
最後の例のように、2つの特殊文字を使わないと、検索対象の文字が検索対象の文字列の任意の部分にあることを表します。
それをある頂点に位置させない。
他には'*'、''''と''があります。これらの3つの記号は、1つまたは1つの連続文字が繰り返し発生する回数を表します。いいえ、ありません。
もっと」「一度以上」「一度もない」。以下はいくつかの例です。
「a b*」:1つの文字列はaの後に0つまたは複数のbが続くという意味です。a","ab","abb",…);
「a b+」:1つの文字列がaの後に少なくとも1つのbまたはそれ以上続くことを表す。
ab文字列はaの後にゼロまたはbが続くことを示します。
「a?b+$」:文字列の末尾に0つまたはaが1つまたは複数のbを伴うことを表します。
使用範囲は大かっこで囲まれて、繰り返しの範囲を表してもいいです。
a b{2}:一つの文字列にaが二つのb(「abb」)に付いていることを表す。
a b{2、}:1つの文字列が少なくとも2つのbに続いていることを表す。
a b{3,5}:一つの文字列はaが3つから5つのbに続いていることを表します。
注意してください。範囲の下限を指定してください。また、気づいたかもしれません。
'「{0、}」、「{1、}」と「{0,1}」に相当します。
もう一つあります¦',「または」の操作を表します。
hi「hi」¦ハロー":文字列に「hi」または「ハロー」があることを示します。
「(b)¦cd)ef":は「bef」または「cdef」を表します。
「(a)¦b)*c':一列を表します。a''b'を混ぜた文字列の後に一つ''c';
'.'は任意の文字に置き換えられます。
「a.[0-9]」:文字列に「a」の後に任意の文字と一つの数字が付いていることを示します。
「^.{3}」:任意の3文字の文字列(長さは3文字)を表します。
括弧は文字列の中の特定の位置に出現できる文字を表します。
「a b」:文字列に「a」または「b」があることを表す(「a」に相当する)。¦b");
「a-d」:文字列が小文字を含む'a'から'd'の一つを表します。¦b¦c¦d「または」[abcd]“);
「^[a-zA-Z]」:アルファベットで始まる文字列を表します。
「[0-9]%」:百分号の前に1桁の数字があることを示します。
「a-zA-Z 0-9」は、1つの文字列がコンマの後にアルファベットまたは数字で終わることを意味します。
四角い括弧の中で'^'を使ってもいいです。出現したくない文字を表してもいいです。'^'は四角い括弧の中の第一位です。如:「%[a-zA-Z]」表
二つの百分番の中にアルファベットが表示されてはいけません。
一字で表現するためには、必ず「^.$」()にいなければなりません。¦*+?{\"これらの文字には転送文字'\'が付けられています。
四角い括弧の中では、変換文字は不要です。
2.正規表現検証制御テキストボックスの入力文字タイプ
1.数字と英語しか入力できません。
<input onkeyup=“value=value.replace(/\W)/g、'')”onbeforepaste=“clipboard Data.setData('text',clipboardData.gets Data('text').replace(//'、'''')Text 1=“Text”
2.数字しか入力できない:
<input onkeyup=「value=value.replace(/^\d)/g、')」onbeforepaste=「clipboard Data.setsData('text',clipboard Data.getData('text').replace(//')」「[/td]/g]、「Text 2」ID=「Text 2」
3.全角のみ入力できます。
<input onkeyup=“value=value.replace(/[^\u FF 00-\uFFFF]/')”onbeforepaste=“clipboard Data.set Data(''text').replace(/[/b]/“TeFFtFF]]=”
4.漢字しか入力できない:
<input onkeyup=「value=value.replace(/^\u 4 E 00-\u 9 FA 5)/g,')」onbeforepaste=「clipboard Data.set Data('text',clipboardData.get Data('text').replace(/').ext's's').replace(/').E 4)
3.正規表現の応用例を分かりやすく説明します。
***************************************************************************
//チェックはすべて数字で構成されていますか?
//^[0-9]{1,20}//
^ヘッドを表す文字は、^の後に続くルールにマッチします。
$は、先頭の文字が$の前のルールにマッチすることを意味します。
[]の内容は任意の文字セットです。
[0-9]要求文字の範囲が0-9の間であることを示します。
{1,20}は、数字文字列の長さが合法的に1から20までであること、すなわち[0-9]の文字の出現回数の範囲が1から20回までであることを示しています。
/^と米ドル/ペアの使用は、文字列全体が完全に定義されたルールにマッチすることを意味するべきで、文字列のうちの1つのサブストリングだけにマッチするのではない。
***************************************************************************
//検証登録名:5-20文字で始め、数字、_、「.」のみ入力できます。の文字列
//^[a-zA-Z]{1}([a-zA-Z 0-9]_[.u])4,19'/
^[a-zA-Z]{1}は最初の文字の要求がアルファベットであることを示します。
([a-zA-Z 0-9]_[._])4,19}は、前の表式の後に続く2番目の文字列の長さを表す4から9桁の文字列で、必要な文字の大きさ、文字の大きさ、数字、または特殊文字セット(.u)です。構成する。
***************************************************************************
//検証ユーザ名:1~30文字で始まる文字列しか入力できません。
//^[a-zA-Z]{1,30}/
***************************************************************************
//チェックパスワード:6-20文字、数字、下線のみ入力できます。
//^(\w){6,20}$
\w:アルファベット、数字、またはアンダースコアのマッチングに使用します。
***************************************************************************
//一般電話、ファックス番号をチェックする:「+」または数字の先頭に「-」と「」が含まれます。
//^[+]{0,1}{1,3}[]?(-]?(\)d)|[]{1,12}+米ドル/
\d:0から9までの数字をマッチングするために使用します。
「?」元の文字は、ターゲットの中で連続的にゼロまたは一回のプリアンブルが発生しなければならないと規定しています。
マッチング可能な文字列は、例えば+123-999;+123-999 999;123 999;+123 999等
***************************************************************************
//検証URL
//http[s]{0,1}:\/////////////////^http[s]{0,1}:\/{1,n}/(url列の長さを表すものはlength(「https:/」)+n)
\/:文字「/」を表します。
すべての文字のセットを表します。
+は{1、}と同じで、1から無限までですよね。
***************************************************************************
「^\d+$」//負でない整数(正の整数+0)
「^[0-9]*[1-9][0-9]*」//正の整数
「^(-\d+)(0+)」//正でない整数(負の整数+0)
「^-[0-9]*[1-9][0-9]*」//負の整数
"^-?\"d+「//整数」
「\\d+(\.\d+)?」//マイナス浮動小数点数でない(正浮動小数点数+0)
"^(([0-9]+\.[0-9]*[1-9]*)|([0-9]*[1-9]]*.[0-9]]]]*.[0-9]]]]]]]+[[0-9]*]|([1-9]]]]、[0-9]*)////正浮動小数点数
"^(-\d+(\.\d+)?)0+(\.0+)$//非正浮動小数点(負浮動小数点+0)
"^(([0-9]+'[0-9]*"*[1-9]]*)|([0-9]*)[0-9]*.[0-9]]]*.[0-9]]]]]]+"([0-9]]*)))//[負の浮動小数点数
^(-?\d+(\.\d+)?$//浮動小数点数
「^[A-Za-z]+$」/26文字のアルファベットからなる文字列
「^[A-Z]+$」/26文字の大文字で構成された文字列
「^[a-z]+$」//26文字の小文字からなる文字列
「^[A-Za-z 0-9]+」///数字と26文字のアルファベットからなる文字列
「^\w+$」//数字、26文字、またはアンダースコアからなる文字列
「^[w-]+(\.[w-]+)*@[w-]+(\.[w-]+」///emailアドレス
「^[a-zA-z]+:/(\w+)*」(+)(\\w+)*(/??\S*)?$//url
//(d{2}{4}-([1-9]{1}))|([1|2])-([[0-2]]([[1-9]{1]))=)|(3[0|1])//。 // 年-月-日
//^(((0)([1-9]{1}))/([1]])/(([0-2]([1-9]{1}))/(d{2} // 月/日/年
「③」@([[0-9]{1,3}、[0-9]{1,3}、[0-9]{1,3}}}}(([w-]+)))([a-Z]{2,4}{0-9}{1,3}(])}}}」([]?) //Emil
"(d+-)?(d{4}-d{7}{3}-d{8}{7,8}(-d+)?" //電話番号
"^((d{1,2}?2[0-4]d 124; 25[0-5]).(d{1,2}?2[0-4]d 12450].(d{1,2}1240-2]d 1245.(.) //IPアドレス
^([0-9 A-F]{2}(-[0-9 A-F]{2}){5}$ //MACアドレスの正規表現
^[-+]?\d+(\.\d+) //値タイプの正規表現
5.javascript正規表現の検査
「^[0-9]*[1-9][0-9]*」//正の整数
「^(-\\d+)(0+)」//正でない整数(負の整数+0)
「^-[0-9]*[1-9][0-9]*」//負の整数
"^-?\\"d+「//整数」
「\\d+(\.\d+)?」//マイナス浮動小数点数でない(正浮動小数点数+0)
「^([0-9]+\.[0-9]*[1-9]“*]|([0-9]*[1-9]]“~0-9]]*.“.[0-9]]]]]+」([0-9]]]]]*)」//正浮動小数点数
"^(-\\d+(\.\d+)?)0+(\.0+)$//非正浮動小数点(負浮動小数点+0)
"^(([0-9]+\.[0-9]*[1-9]、[0-9]*)|([0-9]*、[1-9]]“*.[0-9]]]]]]]]]]“[0-9]]]]]]]]”//負の浮動小数点数
"^(-?\\d+(\.\d+)?"//浮動小数点数
「^[A-Za-z]+$」/26文字のアルファベットからなる文字列
「^[A-Z]+$」/26文字の大文字で構成された文字列
「^[a-z]+$」//26文字の小文字からなる文字列
「^[A-Za-z 0-9]+」///数字と26文字のアルファベットからなる文字列
「^\\w+$」//数字、26文字、またはアンダースコアからなる文字列
「\\\w-」+(\\\\\\\w-」+)*@@@@@@@@@[\\\\\\-]+(\.[\\w-]+)///emailアドレス
「^[a-zA-z]+:/(\\w+)*」(\\\\w+)/(\")*(\\???\S*)?$//url
以上は本文の全部です。お好きなように。
1.正規表現の基本文法
二つの特殊な記号'^''と'$彼らの役割は文字列の開始と終了をそれぞれ指摘することです。例は以下の通りです
「^The」:「The」で始まるすべての文字列(「The」「The cat」など)を表します。
「of despair」:だから「of despair」で終わる文字列を表します。
「^abc$」:始まりと終わりが「abc」の文字列であることを示します。ほほほ、「abc」だけが自分です。
「notice」:任意の「notice」を含む文字列を表します。
最後の例のように、2つの特殊文字を使わないと、検索対象の文字が検索対象の文字列の任意の部分にあることを表します。
それをある頂点に位置させない。
他には'*'、''''と''があります。これらの3つの記号は、1つまたは1つの連続文字が繰り返し発生する回数を表します。いいえ、ありません。
もっと」「一度以上」「一度もない」。以下はいくつかの例です。
「a b*」:1つの文字列はaの後に0つまたは複数のbが続くという意味です。a","ab","abb",…);
「a b+」:1つの文字列がaの後に少なくとも1つのbまたはそれ以上続くことを表す。
ab文字列はaの後にゼロまたはbが続くことを示します。
「a?b+$」:文字列の末尾に0つまたはaが1つまたは複数のbを伴うことを表します。
使用範囲は大かっこで囲まれて、繰り返しの範囲を表してもいいです。
a b{2}:一つの文字列にaが二つのb(「abb」)に付いていることを表す。
a b{2、}:1つの文字列が少なくとも2つのbに続いていることを表す。
a b{3,5}:一つの文字列はaが3つから5つのbに続いていることを表します。
注意してください。範囲の下限を指定してください。また、気づいたかもしれません。
'「{0、}」、「{1、}」と「{0,1}」に相当します。
もう一つあります¦',「または」の操作を表します。
hi「hi」¦ハロー":文字列に「hi」または「ハロー」があることを示します。
「(b)¦cd)ef":は「bef」または「cdef」を表します。
「(a)¦b)*c':一列を表します。a''b'を混ぜた文字列の後に一つ''c';
'.'は任意の文字に置き換えられます。
「a.[0-9]」:文字列に「a」の後に任意の文字と一つの数字が付いていることを示します。
「^.{3}」:任意の3文字の文字列(長さは3文字)を表します。
括弧は文字列の中の特定の位置に出現できる文字を表します。
「a b」:文字列に「a」または「b」があることを表す(「a」に相当する)。¦b");
「a-d」:文字列が小文字を含む'a'から'd'の一つを表します。¦b¦c¦d「または」[abcd]“);
「^[a-zA-Z]」:アルファベットで始まる文字列を表します。
「[0-9]%」:百分号の前に1桁の数字があることを示します。
「a-zA-Z 0-9」は、1つの文字列がコンマの後にアルファベットまたは数字で終わることを意味します。
四角い括弧の中で'^'を使ってもいいです。出現したくない文字を表してもいいです。'^'は四角い括弧の中の第一位です。如:「%[a-zA-Z]」表
二つの百分番の中にアルファベットが表示されてはいけません。
一字で表現するためには、必ず「^.$」()にいなければなりません。¦*+?{\"これらの文字には転送文字'\'が付けられています。
四角い括弧の中では、変換文字は不要です。
2.正規表現検証制御テキストボックスの入力文字タイプ
1.数字と英語しか入力できません。
<input onkeyup=“value=value.replace(/\W)/g、'')”onbeforepaste=“clipboard Data.setData('text',clipboardData.gets Data('text').replace(//'、'''')Text 1=“Text”
2.数字しか入力できない:
<input onkeyup=「value=value.replace(/^\d)/g、')」onbeforepaste=「clipboard Data.setsData('text',clipboard Data.getData('text').replace(//')」「[/td]/g]、「Text 2」ID=「Text 2」
3.全角のみ入力できます。
<input onkeyup=“value=value.replace(/[^\u FF 00-\uFFFF]/')”onbeforepaste=“clipboard Data.set Data(''text').replace(/[/b]/“TeFFtFF]]=”
4.漢字しか入力できない:
<input onkeyup=「value=value.replace(/^\u 4 E 00-\u 9 FA 5)/g,')」onbeforepaste=「clipboard Data.set Data('text',clipboardData.get Data('text').replace(/').ext's's').replace(/').E 4)
3.正規表現の応用例を分かりやすく説明します。
***************************************************************************
//チェックはすべて数字で構成されていますか?
//^[0-9]{1,20}//
^ヘッドを表す文字は、^の後に続くルールにマッチします。
$は、先頭の文字が$の前のルールにマッチすることを意味します。
[]の内容は任意の文字セットです。
[0-9]要求文字の範囲が0-9の間であることを示します。
{1,20}は、数字文字列の長さが合法的に1から20までであること、すなわち[0-9]の文字の出現回数の範囲が1から20回までであることを示しています。
/^と米ドル/ペアの使用は、文字列全体が完全に定義されたルールにマッチすることを意味するべきで、文字列のうちの1つのサブストリングだけにマッチするのではない。
***************************************************************************
//検証登録名:5-20文字で始め、数字、_、「.」のみ入力できます。の文字列
//^[a-zA-Z]{1}([a-zA-Z 0-9]_[.u])4,19'/
^[a-zA-Z]{1}は最初の文字の要求がアルファベットであることを示します。
([a-zA-Z 0-9]_[._])4,19}は、前の表式の後に続く2番目の文字列の長さを表す4から9桁の文字列で、必要な文字の大きさ、文字の大きさ、数字、または特殊文字セット(.u)です。構成する。
***************************************************************************
//検証ユーザ名:1~30文字で始まる文字列しか入力できません。
//^[a-zA-Z]{1,30}/
***************************************************************************
//チェックパスワード:6-20文字、数字、下線のみ入力できます。
//^(\w){6,20}$
\w:アルファベット、数字、またはアンダースコアのマッチングに使用します。
***************************************************************************
//一般電話、ファックス番号をチェックする:「+」または数字の先頭に「-」と「」が含まれます。
//^[+]{0,1}{1,3}[]?(-]?(\)d)|[]{1,12}+米ドル/
\d:0から9までの数字をマッチングするために使用します。
「?」元の文字は、ターゲットの中で連続的にゼロまたは一回のプリアンブルが発生しなければならないと規定しています。
マッチング可能な文字列は、例えば+123-999;+123-999 999;123 999;+123 999等
***************************************************************************
//検証URL
//http[s]{0,1}:\/////////////////^http[s]{0,1}:\/{1,n}/(url列の長さを表すものはlength(「https:/」)+n)
\/:文字「/」を表します。
すべての文字のセットを表します。
+は{1、}と同じで、1から無限までですよね。
***************************************************************************
//
/^[\u4E00-\u9FA5]+$/
[\u4E00-\u9FA5] :
javascript
<html>
<script language="JavaScript">
<!--
function regx(r,s)
{
if (r == null || r == ""){
return false;
}
var patrn= new RegExp(r);
if (patrn.exec(s))
return true
return false
}
-->
</script>
<body>
<form>
: <input type="input" name="regxStr" value="" > ( / / )
<br>
: <input type="input" name="str" value="" >
<input type="button" name="match" value=" " onClick="alert(regx(regxStr.value,str.value));">
</form>
</body>
</html>
4.正t表_式用「^\d+$」//負でない整数(正の整数+0)
「^[0-9]*[1-9][0-9]*」//正の整数
「^(-\d+)(0+)」//正でない整数(負の整数+0)
「^-[0-9]*[1-9][0-9]*」//負の整数
"^-?\"d+「//整数」
「\\d+(\.\d+)?」//マイナス浮動小数点数でない(正浮動小数点数+0)
"^(([0-9]+\.[0-9]*[1-9]*)|([0-9]*[1-9]]*.[0-9]]]]*.[0-9]]]]]]]+[[0-9]*]|([1-9]]]]、[0-9]*)////正浮動小数点数
"^(-\d+(\.\d+)?)0+(\.0+)$//非正浮動小数点(負浮動小数点+0)
"^(([0-9]+'[0-9]*"*[1-9]]*)|([0-9]*)[0-9]*.[0-9]]]*.[0-9]]]]]]+"([0-9]]*)))//[負の浮動小数点数
^(-?\d+(\.\d+)?$//浮動小数点数
「^[A-Za-z]+$」/26文字のアルファベットからなる文字列
「^[A-Z]+$」/26文字の大文字で構成された文字列
「^[a-z]+$」//26文字の小文字からなる文字列
「^[A-Za-z 0-9]+」///数字と26文字のアルファベットからなる文字列
「^\w+$」//数字、26文字、またはアンダースコアからなる文字列
「^[w-]+(\.[w-]+)*@[w-]+(\.[w-]+」///emailアドレス
「^[a-zA-z]+:/(\w+)*」(+)(\\w+)*(/??\S*)?$//url
//(d{2}{4}-([1-9]{1}))|([1|2])-([[0-2]]([[1-9]{1]))=)|(3[0|1])//。 // 年-月-日
//^(((0)([1-9]{1}))/([1]])/(([0-2]([1-9]{1}))/(d{2} // 月/日/年
「③」@([[0-9]{1,3}、[0-9]{1,3}、[0-9]{1,3}}}}(([w-]+)))([a-Z]{2,4}{0-9}{1,3}(])}}}」([]?) //Emil
"(d+-)?(d{4}-d{7}{3}-d{8}{7,8}(-d+)?" //電話番号
"^((d{1,2}?2[0-4]d 124; 25[0-5]).(d{1,2}?2[0-4]d 12450].(d{1,2}1240-2]d 1245.(.) //IPアドレス
^([0-9 A-F]{2}(-[0-9 A-F]{2}){5}$ //MACアドレスの正規表現
^[-+]?\d+(\.\d+) //値タイプの正規表現
5.javascript正規表現の検査
//
function isDigit(s)
{
var patrn=/^[0-9]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}
// : 5-20 、 、“_”、“.”
function isRegisterUserName(s)
{
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if (!patrn.exec(s)) return false
return true
}
// : 1-30
function isTrueName(s)
{
var patrn=/^[a-zA-Z]{1,30}$/;
if (!patrn.exec(s)) return false
return true
}
// : 6-20 、 、
function isPasswd(s)
{
var patrn=/^(\w){6,20}$/;
if (!patrn.exec(s)) return false
return true
}
// 、 : “+” , , “-”
function isTel(s)
{
//var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}
// : , , “-”
function isMobil(s)
{
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}
//
function isPostalCode(s)
{
//var patrn=/^[a-zA-Z0-9]{3,12}$/;
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
if (!patrn.exec(s)) return false
return true
}
//
function isSearch(s)
{
var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;\'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;\'\,.<>?]{0,19}$/;
if (!patrn.exec(s)) return false
return true
}
function isIP(s) //by zergling
{
var patrn=/^[0-9.]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}
/*********************************************************************************
* FUNCTION: isBetween
* PARAMETERS: val AS any value
* lo AS Lower limit to check
* hi AS Higher limit to check
* CALLS: NOTHING
* RETURNS: TRUE if val is between lo and hi both inclusive, otherwise false.
**********************************************************************************/
function isBetween (val, lo, hi) {
if ((val < lo) || (val > hi)) { return(false); }
else { return(true); }
}
/*********************************************************************************
* FUNCTION: isDate checks a valid date
* PARAMETERS: theStr AS String
* CALLS: isBetween, isInt
* RETURNS: TRUE if theStr is a valid date otherwise false.
**********************************************************************************/
function isDate (theStr) {
var the1st = theStr.indexOf('-');
var the2nd = theStr.lastIndexOf('-');
if (the1st == the2nd) { return(false); }
else {
var y = theStr.substring(0,the1st);
var m = theStr.substring(the1st+1,the2nd);
var d = theStr.substring(the2nd+1,theStr.length);
var maxDays = 31;
if (isInt(m)==false || isInt(d)==false || isInt(y)==false) {
return(false); }
else if (y.length < 4) { return(false); }
else if (!isBetween (m, 1, 12)) { return(false); }
else if (m==4 || m==6 || m==9 || m==11) maxDays = 30;
else if (m==2) {
if (y % 4 > 0) maxDays = 28;
else if (y % 100 == 0 && y % 400 > 0) maxDays = 28;
else maxDays = 29;
}
if (isBetween(d, 1, maxDays) == false) { return(false); }
else { return(true); }
}
}
/*********************************************************************************
* FUNCTION: isEuDate checks a valid date in British format
* PARAMETERS: theStr AS String
* CALLS: isBetween, isInt
* RETURNS: TRUE if theStr is a valid date otherwise false.
**********************************************************************************/
function isEuDate (theStr) {
if (isBetween(theStr.length, 8, 10) == false) { return(false); }
else {
var the1st = theStr.indexOf('/');
var the2nd = theStr.lastIndexOf('/');
if (the1st == the2nd) { return(false); }
else {
var m = theStr.substring(the1st+1,the2nd);
var d = theStr.substring(0,the1st);
var y = theStr.substring(the2nd+1,theStr.length);
var maxDays = 31;
if (isInt(m)==false || isInt(d)==false || isInt(y)==false) {
return(false); }
else if (y.length < 4) { return(false); }
else if (isBetween (m, 1, 12) == false) { return(false); }
else if (m==4 || m==6 || m==9 || m==11) maxDays = 30;
else if (m==2) {
if (y % 4 > 0) maxDays = 28;
else if (y % 100 == 0 && y % 400 > 0) maxDays = 28;
else maxDays = 29;
}
if (isBetween(d, 1, maxDays) == false) { return(false); }
else { return(true); }
}
}
}
/********************************************************************************
* FUNCTION: Compare Date! Which is the latest!
* PARAMETERS: lessDate,moreDate AS String
* CALLS: isDate,isBetween
* RETURNS: TRUE if lessDate<moreDate
*********************************************************************************/
function isComdate (lessDate , moreDate)
{
if (!isDate(lessDate)) { return(false);}
if (!isDate(moreDate)) { return(false);}
var less1st = lessDate.indexOf('-');
var less2nd = lessDate.lastIndexOf('-');
var more1st = moreDate.indexOf('-');
var more2nd = moreDate.lastIndexOf('-');
var lessy = lessDate.substring(0,less1st);
var lessm = lessDate.substring(less1st+1,less2nd);
var lessd = lessDate.substring(less2nd+1,lessDate.length);
var morey = moreDate.substring(0,more1st);
var morem = moreDate.substring(more1st+1,more2nd);
var mored = moreDate.substring(more2nd+1,moreDate.length);
var Date1 = new Date(lessy,lessm,lessd);
var Date2 = new Date(morey,morem,mored);
if (Date1>Date2) { return(false);}
return(true);
}
/*********************************************************************************
* FUNCTION isEmpty checks if the parameter is empty or null
* PARAMETER str AS String
**********************************************************************************/
function isEmpty (str) {
if ((str==null)||(str.length==0)) return true;
else return(false);
}
/*********************************************************************************
* FUNCTION: isInt
* PARAMETER: theStr AS String
* RETURNS: TRUE if the passed parameter is an integer, otherwise FALSE
* CALLS: isDigit
**********************************************************************************/
function isInt (theStr) {
var flag = true;
if (isEmpty(theStr)) { flag=false; }
else
{ for (var i=0; i<theStr.length; i++) {
if (isDigit(theStr.substring(i,i+1)) == false) {
flag = false; break;
}
}
}
return(flag);
}
/*********************************************************************************
* FUNCTION: isReal
* PARAMETER: heStr AS String
decLen AS Integer (how many digits after period)
* RETURNS: TRUE if theStr is a float, otherwise FALSE
* CALLS: isInt
**********************************************************************************/
function isReal (theStr, decLen) {
var dot1st = theStr.indexOf('.');
var dot2nd = theStr.lastIndexOf('.');
var OK = true;
if (isEmpty(theStr)) return false;
if (dot1st == -1) {
if (!isInt(theStr)) return(false);
else return(true);
}
else if (dot1st != dot2nd) return (false);
else if (dot1st==0) return (false);
else {
var intPart = theStr.substring(0, dot1st);
var decPart = theStr.substring(dot2nd+1);
if (decPart.length > decLen) return(false);
else if (!isInt(intPart) || !isInt(decPart)) return (false);
else if (isEmpty(decPart)) return (false);
else return(true);
}
}
/*********************************************************************************
* FUNCTION: isEmail
* PARAMETER: String (Email Address)
* RETURNS: TRUE if the String is a valid Email address
* FALSE if the passed string is not a valid Email Address
* EMAIL FORMAT: AnyName@EmailServer e.g; [email protected]
* @ sign can appear only once in the email address.
*********************************************************************************/
function isEmail (theStr) {
var atIndex = theStr.indexOf('@');
var dotIndex = theStr.indexOf('.', atIndex);
var flag = true;
theSub = theStr.substring(0, dotIndex+1)
if ((atIndex < 1)||(atIndex != theStr.lastIndexOf('@'))||(dotIndex < atIndex + 2)||(theStr.length <= theSub.length))
{ return(false); }
else { return(true); }
}
/*********************************************************************************
* FUNCTION: newWindow
* PARAMETERS: doc -> Document to open in the new window
hite -> Height of the new window
wide -> Width of the new window
bars -> 1-Scroll bars = YES 0-Scroll Bars = NO
resize -> 1-Resizable = YES 0-Resizable = NO
* CALLS: NONE
* RETURNS: New window instance
**********************************************************************************/
function newWindow (doc, hite, wide, bars, resize) {
var winNew="_blank";
var opt="toolbar=0,location=0,directories=0,status=0,menubar=0,";
opt+=("scrollbars="+bars+",");
opt+=("resizable="+resize+",");
opt+=("width="+wide+",");
opt+=("height="+hite);
winHandle=window.open(doc,winNew,opt);
return;
}
/*********************************************************************************
* FUNCTION: DecimalFormat
* PARAMETERS: paramValue -> Field value
* CALLS: NONE
* RETURNS: Formated string
**********************************************************************************/
function DecimalFormat (paramValue) {
var intPart = parseInt(paramValue);
var decPart =parseFloat(paramValue) - intPart;
str = "";
if ((decPart == 0) || (decPart == null)) str += (intPart + ".00");
else str += (intPart + decPart);
return (str);
}
「\\d+$」//負でない整数(正の整数+0)「^[0-9]*[1-9][0-9]*」//正の整数
「^(-\\d+)(0+)」//正でない整数(負の整数+0)
「^-[0-9]*[1-9][0-9]*」//負の整数
"^-?\\"d+「//整数」
「\\d+(\.\d+)?」//マイナス浮動小数点数でない(正浮動小数点数+0)
「^([0-9]+\.[0-9]*[1-9]“*]|([0-9]*[1-9]]“~0-9]]*.“.[0-9]]]]]+」([0-9]]]]]*)」//正浮動小数点数
"^(-\\d+(\.\d+)?)0+(\.0+)$//非正浮動小数点(負浮動小数点+0)
"^(([0-9]+\.[0-9]*[1-9]、[0-9]*)|([0-9]*、[1-9]]“*.[0-9]]]]]]]]]]“[0-9]]]]]]]]”//負の浮動小数点数
"^(-?\\d+(\.\d+)?"//浮動小数点数
「^[A-Za-z]+$」/26文字のアルファベットからなる文字列
「^[A-Z]+$」/26文字の大文字で構成された文字列
「^[a-z]+$」//26文字の小文字からなる文字列
「^[A-Za-z 0-9]+」///数字と26文字のアルファベットからなる文字列
「^\\w+$」//数字、26文字、またはアンダースコアからなる文字列
「\\\w-」+(\\\\\\\w-」+)*@@@@@@@@@[\\\\\\-]+(\.[\\w-]+)///emailアドレス
「^[a-zA-z]+:/(\\w+)*」(\\\\w+)/(\")*(\\???\S*)?$//url
以上は本文の全部です。お好きなように。