| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182 |
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <head>
- <title>Cron表达式生成器</title>
- <meta name="description" content="通过这个生成器,您可以在线生成任务调度比如Quartz的Cron表达式,对Quartz Cron 表达式的可视化双向解析和生成." />
- <meta name="keywords" content="cron creater,generate Cron Expression,Cron Expression online,Quartz Cron Expresssion,cron在线生成工具" />
- <meta name="baidu-tc-cerfication" content="52031c379393b942ce0d59195791f366" />
- <link href="plug-in/cron/themes/bootstrap/easyui.min.css" rel="stylesheet" type="text/css" />
- <link href="plug-in/cron/themes/icon.css" rel="stylesheet" type="text/css" />
- <link href="plug-in/cron/icon.css" rel="stylesheet" type="text/css" />
- <script src="plug-in/cron/jquery-1.6.2.min.js" type="text/javascript"></script>
- <script src="plug-in/cron/jquery.easyui.min.js" type="text/javascript"></script>
- <script src="plug-in/cron/cron.js" type="text/javascript"></script>
- <style type="text/css">
- .line
- {
- height: 25px;
- line-height: 25px;
- margin: 3px;
- }
- .imp
- {
- padding-left: 25px;
- }
- .col
- {
- width: 95px;
- }
- ul {
- list-style:none;
- padding-left:10px;
- }
- li {
- height:20px;
- }
- </style>
- </head>
- <body>
- <center>
- <div class="easyui-layout" style="width:930px;height:560px; border: 1px rgb(202, 196, 196) solid;
- border-radius: 5px;">
- <div style="height: 100%;">
- <div class="easyui-tabs" data-options="fit:true,border:false">
- <div title="秒">
- <div class="line">
- <input type="radio" checked="checked" name="second" onclick="everyTime(this)">
- 每秒 允许的通配符[, - * /]</div>
- <div class="line">
- <input type="radio" name="second" onclick="cycle(this)">
- 周期从
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:58" value="1"
- id="secondStart_0">
- -
- <input class="numberspinner" style="width: 60px;" data-options="min:2,max:59" value="2"
- id="secondEnd_0">
- 秒</div>
- <div class="line">
- <input type="radio" name="second" onclick="startOn(this)">
- 从
- <input class="numberspinner" style="width: 60px;" data-options="min:0,max:59" value="0"
- id="secondStart_1">
- 秒开始,每
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:59" value="1"
- id="secondEnd_1">
- 秒执行一次</div>
- <div class="line">
- <input type="radio" name="second" id="sencond_appoint">
- 指定</div>
- <div class="imp secondList">
- <input type="checkbox" value="0">00
- <input type="checkbox" value="1">01
- <input type="checkbox" value="2">02
- <input type="checkbox" value="3">03
- <input type="checkbox" value="4">04
- <input type="checkbox" value="5">05
- <input type="checkbox" value="6">06
- <input type="checkbox" value="7">07
- <input type="checkbox" value="8">08
- <input type="checkbox" value="9">09
- </div>
- <div class="imp secondList">
- <input type="checkbox" value="10">10
- <input type="checkbox" value="11">11
- <input type="checkbox" value="12">12
- <input type="checkbox" value="13">13
- <input type="checkbox" value="14">14
- <input type="checkbox" value="15">15
- <input type="checkbox" value="16">16
- <input type="checkbox" value="17">17
- <input type="checkbox" value="18">18
- <input type="checkbox" value="19">19
- </div>
- <div class="imp secondList">
- <input type="checkbox" value="20">20
- <input type="checkbox" value="21">21
- <input type="checkbox" value="22">22
- <input type="checkbox" value="23">23
- <input type="checkbox" value="24">24
- <input type="checkbox" value="25">25
- <input type="checkbox" value="26">26
- <input type="checkbox" value="27">27
- <input type="checkbox" value="28">28
- <input type="checkbox" value="29">29
- </div>
- <div class="imp secondList">
- <input type="checkbox" value="30">30
- <input type="checkbox" value="31">31
- <input type="checkbox" value="32">32
- <input type="checkbox" value="33">33
- <input type="checkbox" value="34">34
- <input type="checkbox" value="35">35
- <input type="checkbox" value="36">36
- <input type="checkbox" value="37">37
- <input type="checkbox" value="38">38
- <input type="checkbox" value="39">39
- </div>
- <div class="imp secondList">
- <input type="checkbox" value="40">40
- <input type="checkbox" value="41">41
- <input type="checkbox" value="42">42
- <input type="checkbox" value="43">43
- <input type="checkbox" value="44">44
- <input type="checkbox" value="45">45
- <input type="checkbox" value="46">46
- <input type="checkbox" value="47">47
- <input type="checkbox" value="48">48
- <input type="checkbox" value="49">49
- </div>
- <div class="imp secondList">
- <input type="checkbox" value="50">50
- <input type="checkbox" value="51">51
- <input type="checkbox" value="52">52
- <input type="checkbox" value="53">53
- <input type="checkbox" value="54">54
- <input type="checkbox" value="55">55
- <input type="checkbox" value="56">56
- <input type="checkbox" value="57">57
- <input type="checkbox" value="58">58
- <input type="checkbox" value="59">59
- </div>
- </div>
- <div title="分钟">
- <div class="line">
- <input type="radio" checked="checked" name="min" onclick="everyTime(this)">
- 分钟 允许的通配符[, - * /]</div>
- <div class="line">
- <input type="radio" name="min" onclick="cycle(this)">
- 周期从
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:58" value="1"
- id="minStart_0">
- -
- <input class="numberspinner" style="width: 60px;" data-options="min:2,max:59" value="2"
- id="minEnd_0">
- 分钟</div>
- <div class="line">
- <input type="radio" name="min" onclick="startOn(this)">
- 从
- <input class="numberspinner" style="width: 60px;" data-options="min:0,max:59" value="0"
- id="minStart_1">
- 分钟开始,每
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:59" value="1"
- id="minEnd_1">
- 分钟执行一次</div>
- <div class="line">
- <input type="radio" name="min" id="min_appoint">
- 指定</div>
- <div class="imp minList">
- <input type="checkbox" value="0">00
- <input type="checkbox" value="1">01
- <input type="checkbox" value="2">02
- <input type="checkbox" value="3">03
- <input type="checkbox" value="4">04
- <input type="checkbox" value="5">05
- <input type="checkbox" value="6">06
- <input type="checkbox" value="7">07
- <input type="checkbox" value="8">08
- <input type="checkbox" value="9">09
- </div>
- <div class="imp minList">
- <input type="checkbox" value="10">10
- <input type="checkbox" value="11">11
- <input type="checkbox" value="12">12
- <input type="checkbox" value="13">13
- <input type="checkbox" value="14">14
- <input type="checkbox" value="15">15
- <input type="checkbox" value="16">16
- <input type="checkbox" value="17">17
- <input type="checkbox" value="18">18
- <input type="checkbox" value="19">19
- </div>
- <div class="imp minList">
- <input type="checkbox" value="20">20
- <input type="checkbox" value="21">21
- <input type="checkbox" value="22">22
- <input type="checkbox" value="23">23
- <input type="checkbox" value="24">24
- <input type="checkbox" value="25">25
- <input type="checkbox" value="26">26
- <input type="checkbox" value="27">27
- <input type="checkbox" value="28">28
- <input type="checkbox" value="29">29
- </div>
- <div class="imp minList">
- <input type="checkbox" value="30">30
- <input type="checkbox" value="31">31
- <input type="checkbox" value="32">32
- <input type="checkbox" value="33">33
- <input type="checkbox" value="34">34
- <input type="checkbox" value="35">35
- <input type="checkbox" value="36">36
- <input type="checkbox" value="37">37
- <input type="checkbox" value="38">38
- <input type="checkbox" value="39">39
- </div>
- <div class="imp minList">
- <input type="checkbox" value="40">40
- <input type="checkbox" value="41">41
- <input type="checkbox" value="42">42
- <input type="checkbox" value="43">43
- <input type="checkbox" value="44">44
- <input type="checkbox" value="45">45
- <input type="checkbox" value="46">46
- <input type="checkbox" value="47">47
- <input type="checkbox" value="48">48
- <input type="checkbox" value="49">49
- </div>
- <div class="imp minList">
- <input type="checkbox" value="50">50
- <input type="checkbox" value="51">51
- <input type="checkbox" value="52">52
- <input type="checkbox" value="53">53
- <input type="checkbox" value="54">54
- <input type="checkbox" value="55">55
- <input type="checkbox" value="56">56
- <input type="checkbox" value="57">57
- <input type="checkbox" value="58">58
- <input type="checkbox" value="59">59
- </div>
- </div>
- <div title="小时">
- <div class="line">
- <input type="radio" checked="checked" name="hour" onclick="everyTime(this)">
- 小时 允许的通配符[, - * /]</div>
- <div class="line">
- <input type="radio" name="hour" onclick="cycle(this)">
- 周期从
- <input class="numberspinner" style="width: 60px;" data-options="min:0,max:23" value="0"
- id="hourStart_0">
- -
- <input class="numberspinner" style="width: 60px;" data-options="min:2,max:23" value="2"
- id="hourEnd_1">
- 小时</div>
- <div class="line">
- <input type="radio" name="hour" onclick="startOn(this)">
- 从
- <input class="numberspinner" style="width: 60px;" data-options="min:0,max:23" value="0"
- id="hourStart_1">
- 小时开始,每
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:23" value="1"
- id="hourEnd_1">
- 小时执行一次</div>
- <div class="line">
- <input type="radio" name="hour" id="hour_appoint">
- 指定</div>
- <div class="imp hourList">
- AM:
- <input type="checkbox" value="0">00
- <input type="checkbox" value="1">01
- <input type="checkbox" value="2">02
- <input type="checkbox" value="3">03
- <input type="checkbox" value="4">04
- <input type="checkbox" value="5">05
- <input type="checkbox" value="6">06
- <input type="checkbox" value="7">07
- <input type="checkbox" value="8">08
- <input type="checkbox" value="9">09
- <input type="checkbox" value="10">10
- <input type="checkbox" value="11">11
- </div>
- <div class="imp hourList">
- PM:
- <input type="checkbox" value="12">12
- <input type="checkbox" value="13">13
- <input type="checkbox" value="14">14
- <input type="checkbox" value="15">15
- <input type="checkbox" value="16">16
- <input type="checkbox" value="17">17
- <input type="checkbox" value="18">18
- <input type="checkbox" value="19">19
- <input type="checkbox" value="20">20
- <input type="checkbox" value="21">21
- <input type="checkbox" value="22">22
- <input type="checkbox" value="23">23
- </div>
- </div>
- <div title="日">
- <div class="line">
- <input type="radio" checked="checked" name="day" onclick="everyTime(this)">
- 日 允许的通配符[, - * / L W]</div>
- <div class="line">
- <input type="radio" name="day" onclick="unAppoint(this)">
- 不指定</div>
- <div class="line">
- <input type="radio" name="day" onclick="cycle(this)">
- 周期从
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:31" value="1"
- id="dayStart_0">
- -
- <input class="numberspinner" style="width: 60px;" data-options="min:2,max:31" value="2"
- id="dayEnd_0">
- 日</div>
- <div class="line">
- <input type="radio" name="day" onclick="startOn(this)">
- 从
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:31" value="1"
- id="dayStart_1">
- 日开始,每
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:31" value="1"
- id="dayEnd_1">
- 天执行一次</div>
- <div class="line">
- <input type="radio" name="day" onclick="workDay(this)">
- 每月
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:31" value="1"
- id="dayStart_2">
- 号最近的那个工作日</div>
- <div class="line">
- <input type="radio" name="day" onclick="lastDay(this)">
- 本月最后一天</div>
- <div class="line">
- <input type="radio" name="day" id="day_appoint">
- 指定</div>
- <div class="imp dayList">
- <input type="checkbox" value="1">1
- <input type="checkbox" value="2">2
- <input type="checkbox" value="3">3
- <input type="checkbox" value="4">4
- <input type="checkbox" value="5">5
- <input type="checkbox" value="6">6
- <input type="checkbox" value="7">7
- <input type="checkbox" value="8">8
- <input type="checkbox" value="9">9
- <input type="checkbox" value="10">10
- <input type="checkbox" value="11">11
- <input type="checkbox" value="12">12
- <input type="checkbox" value="13">13
- <input type="checkbox" value="14">14
- <input type="checkbox" value="15">15
- <input type="checkbox" value="16">16
- </div>
- <div class="imp dayList">
- <input type="checkbox" value="17">17
- <input type="checkbox" value="18">18
- <input type="checkbox" value="19">19
- <input type="checkbox" value="20">20
- <input type="checkbox" value="21">21
- <input type="checkbox" value="22">22
- <input type="checkbox" value="23">23
- <input type="checkbox" value="24">24
- <input type="checkbox" value="25">25
- <input type="checkbox" value="26">26
- <input type="checkbox" value="27">27
- <input type="checkbox" value="28">28
- <input type="checkbox" value="29">29
- <input type="checkbox" value="30">30
- <input type="checkbox" value="31">31
- </div>
- </div>
- <div title="月">
- <div class="line">
- <input type="radio" checked="checked" name="mouth" onclick="everyTime(this)">
- 月 允许的通配符[, - * /]</div>
- <div class="line">
- <input type="radio" name="mouth" onclick="unAppoint(this)">
- 不指定</div>
- <div class="line">
- <input type="radio" name="mouth" onclick="cycle(this)">
- 周期从
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:12" value="1"
- id="mouthStart_0">
- -
- <input class="numberspinner" style="width: 60px;" data-options="min:2,max:12" value="2"
- id="mouthEnd_0">
- 月</div>
- <div class="line">
- <input type="radio" name="mouth" onclick="startOn(this)">
- 从
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:12" value="1"
- id="mouthStart_1">
- 日开始,每
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:12" value="1"
- id="mouthEnd_1">
- 月执行一次</div>
- <div class="line">
- <input type="radio" name="mouth" id="mouth_appoint">
- 指定</div>
- <div class="imp mouthList">
- <input type="checkbox" value="1">1
- <input type="checkbox" value="2">2
- <input type="checkbox" value="3">3
- <input type="checkbox" value="4">4
- <input type="checkbox" value="5">5
- <input type="checkbox" value="6">6
- <input type="checkbox" value="7">7
- <input type="checkbox" value="8">8
- <input type="checkbox" value="9">9
- <input type="checkbox" value="10">10
- <input type="checkbox" value="11">11
- <input type="checkbox" value="12">12
- </div>
- </div>
- <div title="周">
- <div class="line">
- <input type="radio" checked="checked" name="week" onclick="everyTime(this)">
- 周 允许的通配符[, - * / L #]</div>
- <div class="line">
- <input type="radio" name="week" onclick="unAppoint(this)">
- 不指定</div>
- <div class="line">
- <input type="radio" name="week" onclick="startOn(this)">
- 周期 从星期<input class="numberspinner" style="width: 60px;" data-options="min:1,max:7"
- id="weekStart_0" value="1">
- -
- <input class="numberspinner" style="width: 60px;" data-options="min:2,max:7" value="2"
- id="weekEnd_0"></div>
- <div class="line">
- <input type="radio" name="week" onclick="weekOfDay(this)">
- 第<input class="numberspinner" style="width: 60px;" data-options="min:1,max:4" value="1"
- id="weekStart_1">
- 周 的星期<input class="numberspinner" style="width: 60px;" data-options="min:1,max:7"
- id="weekEnd_1" value="1"></div>
- <div class="line">
- <input type="radio" name="week" onclick="lastWeek(this)">
- 本月最后一个星期<input class="numberspinner" style="width: 60px;" data-options="min:1,max:7"
- id="weekStart_2" value="1"></div>
- <div class="line">
- <input type="radio" name="week" id="week_appoint">
- 指定</div>
- <div class="imp weekList">
- <input type="checkbox" value="1">1
- <input type="checkbox" value="2">2
- <input type="checkbox" value="3">3
- <input type="checkbox" value="4">4
- <input type="checkbox" value="5">5
- <input type="checkbox" value="6">6
- <input type="checkbox" value="7">7
- </div>
- </div>
- <div title="年">
- <div class="line">
- <input type="radio" checked="checked" name="year" onclick="unAppoint(this)">
- 不指定 允许的通配符[, - * /] 非必填</div>
- <div class="line">
- <input type="radio" name="year" onclick="everyTime(this)">
- 每年</div>
- <div class="line">
- <input type="radio" name="year" onclick="cycle(this)">周期 从
- <input class="numberspinner" style="width: 90px;" data-options="min:2013,max:3000"
- id="yearStart_0" value="2013">
- -
- <input class="numberspinner" style="width: 90px;" data-options="min:2014,max:3000"
- id="yearEnd_0" value="2014"></div>
- </div>
- </div>
- </div>
- <div data-options="region:'south',border:false" style="height:250px">
- <fieldset style="border-radius: 3px; height: 220px;">
- <legend>表达式</legend>
- <table style="height: 100px;">
- <tbody>
- <tr>
- <td>
- </td>
- <td align="center">
- 秒
- </td>
- <td align="center">
- 分钟
- </td>
- <td align="center">
- 小时
- </td>
- <td align="center">
- 日
- </td>
- <td align="center">
- 月<br />
- </td>
- <td align="center">
- 星期
- </td>
- <td align="center">
- 年
- </td>
- </tr>
- <tr>
- <td style="width: 120px; ">
- 表达式字段:
- </td>
- <td>
- <input type="text" name="v_second" class="col" value="*" readonly="readonly" />
- </td>
- <td>
- <input type="text" name="v_min" class="col" value="*" readonly="readonly" />
- </td>
- <td>
- <input type="text" name="v_hour" class="col" value="*" readonly="readonly" />
- </td>
- <td>
- <input type="text" name="v_day" class="col" value="*" readonly="readonly" />
- </td>
- <td>
- <input type="text" name="v_mouth" class="col" value="*" readonly="readonly" />
- </td>
- <td>
- <input type="text" name="v_week" class="col" value="?" readonly="readonly" />
- </td>
- <td>
- <input type="text" name="v_year" class="col" readonly="readonly" />
- </td>
- </tr>
- <tr>
- <td>Cron 表达式:</td>
- <td colspan="5"><input type="text" name="cron" style="width: 100%;" value="* * * * * ?" id="cron"
- /></td>
- <td><input type="button" value="反解析到UI " id="btnFan" onclick="btnFan()"/></td>
- <td><input type="button" value="反解析到UI " id="btnCN" onclick="btnCN()"/></td>
- </tr>
- <tr>
- <td>
- <label >中文描述: </label>
- </td>
- <td colspan="5">
- <input type="text" name="chinese" class="col" readonly="readonly" style="width:100%; "/>
- </td>
- </tr>
- <tr >
- <td colspan="8" >最近5次运行时间:</td>
- </tr>
- <tr>
- <td colspan="8" id="runTime">
- </td>
- </tr>
- </tbody>
- </table>
- </fieldset>
- <div style="text-align: center; margin-top: 5px;">
- <script type="text/javascript">
- /*killIe*/
- $.parser.parse($("body"));
- var cpro_id = "u1331261";
- function btnFan() {
- //获取参数中表达式的值
- var txt = $("#cron").val();
- if (txt) {
- var regs = txt.split(' ');
- $("input[name=v_second]").val(regs[0]);
- $("input[name=v_min]").val(regs[1]);
- $("input[name=v_hour]").val(regs[2]);
- $("input[name=v_day]").val(regs[3]);
- $("input[name=v_mouth]").val(regs[4]);
- $("input[name=v_week]").val(regs[5]);
- initObj(regs[0], "second");
- initObj(regs[1], "min");
- initObj(regs[2], "hour");
- initDay(regs[3]);
- initMonth(regs[4]);
- initWeek(regs[5]);
- if (regs.length > 6) {
- $("input[name=v_year]").val(regs[6]);
- initYear(regs[6]);
- }
- }
- }
- function btnCN() {
- //获取参数中表达式的值
- var txt = $("#cron").val();
- if (txt) {
- var regs = txt.split(' ');
- var description = "";
- $("input[name=chinese]").val(description);
-
- //$("input[name=v_min]").val(regs[1]);
- }
- }
- function initObj(strVal, strid) {
- var ary = null;
- var objRadio = $("input[name='" + strid + "'");
- if (strVal == "*") {
- objRadio.eq(0).attr("checked", "checked");
- } else if (strVal.split('-').length > 1) {
- ary = strVal.split('-');
- objRadio.eq(1).attr("checked", "checked");
- $("#" + strid + "Start_0").numberspinner('setValue', ary[0]);
- $("#" + strid + "End_0").numberspinner('setValue', ary[1]);
- } else if (strVal.split('/').length > 1) {
- ary = strVal.split('/');
- objRadio.eq(2).attr("checked", "checked");
- $("#" + strid + "Start_1").numberspinner('setValue', ary[0]);
- $("#" + strid + "End_1").numberspinner('setValue', ary[1]);
- } else {
- objRadio.eq(3).attr("checked", "checked");
- if (strVal != "?") {
- ary = strVal.split(",");
- for (var i = 0; i < ary.length; i++) {
- $("." + strid + "List input[value='" + ary[i] + "']").attr("checked", "checked");
- }
- }
- }
- }
- function initDay(strVal) {
- var ary = null;
- var objRadio = $("input[name='day'");
- if (strVal == "*") {
- objRadio.eq(0).attr("checked", "checked");
- } else if (strVal == "?") {
- objRadio.eq(1).attr("checked", "checked");
- } else if (strVal.split('-').length > 1) {
- ary = strVal.split('-');
- objRadio.eq(2).attr("checked", "checked");
- $("#dayStart_0").numberspinner('setValue', ary[0]);
- $("#dayEnd_0").numberspinner('setValue', ary[1]);
- } else if (strVal.split('/').length > 1) {
- ary = strVal.split('/');
- objRadio.eq(3).attr("checked", "checked");
- $("#dayStart_1").numberspinner('setValue', ary[0]);
- $("#dayEnd_1").numberspinner('setValue', ary[1]);
- } else if (strVal.split('W').length > 1) {
- ary = strVal.split('W');
- objRadio.eq(4).attr("checked", "checked");
- $("#dayStart_2").numberspinner('setValue', ary[0]);
- } else if (strVal == "L") {
- objRadio.eq(5).attr("checked", "checked");
- } else {
- objRadio.eq(6).attr("checked", "checked");
- ary = strVal.split(",");
- for (var i = 0; i < ary.length; i++) {
- $(".dayList input[value='" + ary[i] + "']").attr("checked", "checked");
- }
- }
- }
- function initMonth(strVal) {
- var ary = null;
- var objRadio = $("input[name='mouth'");
- if (strVal == "*") {
- objRadio.eq(0).attr("checked", "checked");
- } else if (strVal == "?") {
- objRadio.eq(1).attr("checked", "checked");
- } else if (strVal.split('-').length > 1) {
- ary = strVal.split('-');
- objRadio.eq(2).attr("checked", "checked");
- $("#mouthStart_0").numberspinner('setValue', ary[0]);
- $("#mouthEnd_0").numberspinner('setValue', ary[1]);
- } else if (strVal.split('/').length > 1) {
- ary = strVal.split('/');
- objRadio.eq(3).attr("checked", "checked");
- $("#mouthStart_1").numberspinner('setValue', ary[0]);
- $("#mouthEnd_1").numberspinner('setValue', ary[1]);
- } else {
- objRadio.eq(4).attr("checked", "checked");
- ary = strVal.split(",");
- for (var i = 0; i < ary.length; i++) {
- $(".mouthList input[value='" + ary[i] + "']").attr("checked", "checked");
- }
- }
- }
- function initWeek(strVal) {
- var ary = null;
- var objRadio = $("input[name='week'");
- if (strVal == "*") {
- objRadio.eq(0).attr("checked", "checked");
- } else if (strVal == "?") {
- objRadio.eq(1).attr("checked", "checked");
- } else if (strVal.split('/').length > 1) {
- ary = strVal.split('/');
- objRadio.eq(2).attr("checked", "checked");
- $("#weekStart_0").numberspinner('setValue', ary[0]);
- $("#weekEnd_0").numberspinner('setValue', ary[1]);
- } else if (strVal.split('-').length > 1) {
- ary = strVal.split('-');
- objRadio.eq(3).attr("checked", "checked");
- $("#weekStart_1").numberspinner('setValue', ary[0]);
- $("#weekEnd_1").numberspinner('setValue', ary[1]);
- } else if (strVal.split('L').length > 1) {
- ary = strVal.split('L');
- objRadio.eq(4).attr("checked", "checked");
- $("#weekStart_2").numberspinner('setValue', ary[0]);
- } else {
- objRadio.eq(5).attr("checked", "checked");
- ary = strVal.split(",");
- for (var i = 0; i < ary.length; i++) {
- $(".weekList input[value='" + ary[i] + "']").attr("checked", "checked");
- }
- }
- }
- function initYear(strVal) {
- var ary = null;
- var objRadio = $("input[name='year'");
- if (strVal == "*") {
- objRadio.eq(1).attr("checked", "checked");
- } else if (strVal.split('-').length > 1) {
- ary = strVal.split('-');
- objRadio.eq(2).attr("checked", "checked");
- $("#yearStart_0").numberspinner('setValue', ary[0]);
- $("#yearEnd_0").numberspinner('setValue', ary[1]);
- }
- }
- function getCron(){
- var checkret = cronValidate( $("#cron").val());
- if(typeof(checkret) == 'boolean')
- return $("#cron").val();
- else
- return 'false'+checkret;
- }
-
- /*!!!!!!!
- 以下为凶残的cron表达式验证,胆小肾虚及心脏病者慎入!!!
- 不听劝告者后果自负T T
- !!!!!!!
- cron表达式为秒,分,时,日,月,周,年
- 判断正误方法:错误的话返回错误信息,正确的话返回true
- */
- function cronValidate(cronExpression ){
- //返回错误信息用
- var message = '';
- //先将cron表达式进行分割
- var cronParams = cronExpression.split(" ");
- //判断cron表达式是否具有该具有的属性长度,没有年份的长度为6,带年份的长度为7,其他情况都是错误的
- if((cronParams.length < 6) || (cronParams.length > 7)){
- return "cron表达式需要输入6-7位参数,请重新输入";
- }else{
- //日和周必须有一个为?,或者全为*
- if((cronParams[3] == "?" && cronParams[5] != "?") || (cronParams[5] == "?" && cronParams[3] != "?") || (cronParams[3] == "*" && cronParams[5] == "*")){
- //检查第一位的秒是否正确
- message = checkSecondsField(cronParams[0]);
- if (message != true) {
- return message;
- }
-
- //检查第二位的分是否正确
- message = checkMinutesField(cronParams[1]);
- if (message != true) {
- return message;
- }
-
- //检查第三位的时是否正确
- message = checkHoursField(cronParams[2]);
- if (message != true) {
- return message;
- }
-
- //检查第四位的日是否正确
- message = checkDayOfMonthField(cronParams[3]);
- if (message != true) {
- return message;
- }
-
- //检查第五位的月是否正确
- message = checkMonthsField(cronParams[4]);
- if (message != true) {
- return message;
- }
-
- //检查第6位的周是否正确
- message = checkDayOfWeekField(cronParams[5]);
- if (message != true) {
- return message;
- }
-
- //检查第七位的年是否正确
- if(cronParams.length>6){
- message = checkYearField(cronParams[6]);
- if (message != true) {
- return message;
- }
- }
-
-
- return true;
- }else{
- return "指定日时周必须设为不指定(?),指定周时日必须设为不指定(?)"
- }
- }
- }
-
- //检查秒的函数方法
- function checkSecondsField(secondsField) {
- return checkField(secondsField, 0, 59, "秒");
- }
-
- //检查分的函数方法
- function checkMinutesField(minutesField) {
- return checkField(minutesField, 0, 59, "分");
- }
-
- //检查小时的函数方法
- function checkHoursField(hoursField) {
- return checkField(hoursField, 0, 23, "时");
- }
-
- //检查日期的函数方法
- function checkDayOfMonthField(dayOfMonthField) {
- if (dayOfMonthField == "?") {
- return true;
- }
- if (dayOfMonthField.indexOf("L") >= 0) {
- return checkFieldWithLetter(dayOfMonthField, "L", 1, 7, "日");
- } else if ( dayOfMonthField.indexOf("W") >= 0) {
- return checkFieldWithLetter(dayOfMonthField, "W", 1, 31, "日");
- } else if (dayOfMonthField.indexOf("C") >= 0) {
- return checkFieldWithLetter(dayOfMonthField, "C", 1, 31, "日");
- }
- return checkField( dayOfMonthField, 1, 31, "日");
- }
-
- //检查月份的函数方法
- function checkMonthsField(monthsField) {
- //月份简写处理
- if(monthsField != "*"){
- monthsField=monthsField.replace("JAN", "1");
- monthsField=monthsField.replace("FEB", "2");
- monthsField=monthsField.replace("MAR", "3");
- monthsField=monthsField.replace("APR", "4");
- monthsField=monthsField.replace("MAY", "5");
- monthsField=monthsField.replace("JUN", "6");
- monthsField=monthsField.replace("JUL", "7");
- monthsField=monthsField.replace("AUG", "8");
- monthsField=monthsField.replace("SEP", "9");
- monthsField=monthsField.replace("OCT", "10");
- monthsField=monthsField.replace("NOV", "11");
- monthsField=monthsField.replace("DEC", "12");
- return checkField(monthsField, 1, 12, "月份");
- }else{
- return true;
- }
-
- }
-
- //星期验证
- function checkDayOfWeekField(dayOfWeekField) {
- dayOfWeekField=dayOfWeekField.replace("SUN", "1" );
- dayOfWeekField=dayOfWeekField.replace("MON", "2" );
- dayOfWeekField=dayOfWeekField.replace("TUE", "3" );
- dayOfWeekField=dayOfWeekField.replace("WED", "4" );
- dayOfWeekField=dayOfWeekField.replace("THU", "5" );
- dayOfWeekField=dayOfWeekField.replace("FRI", "6" );
- dayOfWeekField=dayOfWeekField.replace("SAT", "7" );
- if (dayOfWeekField == "?") {
- return true;
- }
- if (dayOfWeekField.indexOf("L") >= 0) {
- return checkFieldWithLetterWeek(dayOfWeekField, "L", 1, 7, "星期");
- } else if (dayOfWeekField.indexOf("C") >= 0) {
- return checkFieldWithLetterWeek(dayOfWeekField, "C", 1, 7, "星期");
- } else if (dayOfWeekField.indexOf("#") >= 0) {
- return checkFieldWithLetterWeek(dayOfWeekField, "#", 1, 7, "星期");
- } else {
- return checkField(dayOfWeekField, 1, 7, "星期");
- }
- }
-
- //检查年份的函数方法
- function checkYearField(yearField) {
- return checkField(yearField, 1970, 2099, "年的");
- }
-
-
-
-
-
- //通用的检查值的大小范围的方法( - , / *)
- function checkField(value, minimal, maximal, attribute) {
- //校验值中是否有“-”,如果有“-”的话,下标会>0
- if (value.indexOf("-") > -1 ) {
- return checkRangeAndCycle(value, minimal, maximal,attribute);
- }
- //校验值中是否有“,”,如果有“,”的话,下标会>0
- else if (value.indexOf(",") > -1) {
- return checkListField(value, minimal, maximal,attribute);
- }
- //校验值中是否有“/”,如果有“/”的话,下标会>0
- else if (value.indexOf( "/" ) > -1) {
- return checkIncrementField( value, minimal, maximal ,attribute);
- }
- //校验值是否为“*”
- else if (value=="*") {
- return true;
- }
- //校验单独的数字,英文字母,以及各种神奇的符号等...
- else {
- return checkIntValue(value, minimal, maximal,true, attribute);
- }
- }
-
-
- //检测是否是整数以及是否在范围内,参数:检测的值,下限,上限,是否检查端点,检查的属性
- function checkIntValue(value, minimal, maximal, checkExtremity,attribute) {
- try {
- //用10进制犯法来进行整数转换
- var val = parseInt(value, 10);
- if (value == val) {
- if (checkExtremity) {
- if ((val < minimal) ||( val > maximal)) {
- return (attribute+"的参数取值范围必须在"+ minimal + "-" + maximal +"之间");
- }
- return true;
- }
- return true;
- }
- return (attribute+"的参数存在非法字符,必须为整数或允许的大写英文");
- } catch (e) {
- return (attribute+"的参数有非法字符,必须是整数~")
- }
- }
- //检验枚举类型的参数是否正确
- function checkListField(value, minimal, maximal,attribute) {
- var st = value.split(",");
- var values = new Array(st.length);
- //计算枚举的数字在数组中中出现的次数,出现一次为没有重复的。
- var count=0;
- for(var j = 0; j < st.length; j++) {
- values[j] = st[j];
- }
- //判断枚举类型的值是否重复
- for(var i=0;i<values.length;i++){
- //判断枚举的值是否在范围内
- message = checkIntValue(values[i], minimal, maximal, true, attribute);
- if (message!=true) {
- return message;
- }
- count=0;
- for(var j=0;j<values.length;j++){
- if(values[i]==values[j])
- {
- count++;
- }
- if(count>1){
- return (attribute+"中的参数重复");
- }
- }
- }
- var previousValue = -1;
- //判断枚举的值是否排序正确
- for (var i= 0; i < values.length; i++) {
- var currentValue = values[i];
- try {
- var val = parseInt(currentValue, 10);
- if (val < previousValue) {
- return (attribute+"的参数应该从小到大");
- } else {
- previousValue = val;
- }
- } catch (e) {
- //前面验证过了,这边的代码不可能跑到
- return ("这段提示用不到")
- }
- }
- return true;
- }
-
- //检验循环
- function checkIncrementField(value, minimal, maximal, attribute) {
- if(value.split("/").length>2){
- return (attribute + "中的参数只能有一个'/'");
- }
- var start = value.substring(0, value.indexOf("/"));
- var increment = value.substring(value.indexOf("/") + 1);
- if (start != "*") {
- //检验前值是否正确
- message = checkIntValue(start, minimal, maximal, true, attribute);
- if(message != true){
- return message;
- }
- //检验后值是否正确
- message = checkIntValue(increment, minimal, maximal, true, attribute);
- if(message != true){
- return message;
- }
- return true;
- } else {
- //检验后值是否正确
- return checkIntValue(increment, minimal, maximal, false, attribute);
- }
- }
-
- //检验范围
- function checkRangeAndCycle(params, minimal, maximal, attribute){
- //校验“-”符号是否只有一个
- if(params.split("-").length>2){
- return (attribute + "中的参数只能有一个'-'");
- }
- var value = null;
- var cycle = null;
- //检验范围内是否有嵌套周期
- if(params.indexOf("/") > -1){
- //校验“/”符号是否只有一个
- if(params.split("/").length>2){
- return (attribute + "中的参数只能有一个'/'");
- }
- value = params.split("/")[0];
- cycle = params.split("/")[1];
- //判断循环的参数是否正确
- message =checkIntValue(cycle, minimal, maximal, true, attribute);
- if (message!=true) {
- return message;
- }
- }else{
- value = params;
- }
- var startValue = value.substring(0, value.indexOf( "-" ));
- var endValue = value.substring(value.indexOf( "-" ) + 1);
- //判断参数范围的第一个值是否正确
- message =checkIntValue(startValue, minimal, maximal, true, attribute);
- if (message!=true) {
- return message;
- }
- //判断参数范围的第二个值是否正确
- message =checkIntValue(endValue, minimal, maximal, true, attribute);
- if(message!=true){
- return message;
- }
- //判断参数的范围前值是否小于后值
- try {
- var startVal = parseInt(startValue, 10);
- var endVal = parseInt(endValue, 10);
- if(endVal < startVal){
- return (attribute+"的取值范围错误,前值必须小于后值");
- }
- if((endVal-startVal)<parseInt(cycle,10)){
- return (attribute+"的取值范围内的循环无意义");
- }
- return true;
- } catch (e) {
- //用不到这行代码的
- return (attribute+"的参数有非法字符,必须是整数");
- }
- }
-
- //检查日中的特殊字符
- function checkFieldWithLetter(value, letter, minimalBefore, maximalBefore,attribute) {
- //判断是否只有一个字母
- for(var i=0;i<value.length;i++){
- var count = 0;
- if(value.charAt(i)==letter){
- count++;
- }
- if(count>1){
- return (attribute+"的值的"+letter+"字母只能有一个")
- }
- }
- //校验L
- if(letter == "L"){
- if(value == "LW"){
- return true;
- }
- if(value=="L"){
- return true;
- }
- if(value.endsWith("LW")&&value.length>2)
- {
- return (attribute + "中的参数,最后的LW前面不能有任何字母参数")
- }
- if(!value.endsWith("L"))
- {
- return (attribute + "中的参数,L字母后面不能有W以外的字符、数字等")
- }else{
- var num = value.substring(0,value.indexOf(letter));
- return checkIntValue(num, minimalBefore, maximalBefore, true, attribute);
- }
- }
-
- //校验W
- if(letter == "W"){
- if(!value.endsWith("W")){
- return (attribute + "中的参数的W必须作为结尾")
- }else{
- if(value=="W"){
- return (attribute + "中的参数的W前面必须有数字")
- }
- var num = value.substring(0,value.indexOf(letter));
- return checkIntValue(num, minimalBefore, maximalBefore, true, attribute);
- }
- }
-
- if(letter == "C"){
- if(!value.endsWith("C")){
- return (attribute + "中的参数的C必须作为结尾")
- }else{
- if(value=="C"){
- return (attribute + "中的参数的C前面必须有数字")
- }
- var num = value.substring(0,value.indexOf(letter));
- return checkIntValue(num, minimalBefore, maximalBefore, true, attribute);
- }
- }
- }
-
- //检查星期中的特殊字符
- function checkFieldWithLetterWeek(value, letter, minimalBefore, maximalBefore,attribute) {
- //判断是否只有一个字母
- for(var i=0;i<value.length;i++){
- var count = 0;
- if(value.charAt(i)==letter){
- count++;
- }
- if(count>1){
- return (attribute+"的值的"+letter+"字母只能有一个")
- }
- }
- //校验L
- if(letter == "L"){
- if(value=="L"){
- return true;
- }
- if(!value.endsWith("L"))
- {
- return (attribute + "中的参数,L字母必须是最后一位")
- }else{
- var num = value.substring(0,value.indexOf(letter));
- return checkIntValue(num, minimalBefore, maximalBefore, true, attribute);
- }
- }
-
- if(letter == "C"){
- if(!value.endsWith("C")){
- return (attribute + "中的参数的C必须作为结尾")
- }else{
- if(value=="C"){
- return (attribute + "中的参数的C前面必须有数字")
- }
- var num = value.substring(0,value.indexOf(letter));
- return checkIntValue(num, minimalBefore, maximalBefore, true, attribute);
- }
- }
-
- if(letter == "#"){
- if(value=="#"){
- return (attribute + "中的#前后必须有整数");
- }
- if(value.charAt(0)==letter){
- return (attribute + "中的#前面必须有整数")
- }
- if(value.endsWith("#")){
- return (attribute + "中的#后面必须有整数")
- }
- var num1 = value.substring(0,value.indexOf(letter));
- var num2 = value.substring(value.indexOf(letter)+1,value.length)
- message = checkIntValue(num1, 1, 4, true, (attribute+"的#前面"));
- if(message!=true){
- return message;
- }
- message = checkIntValue(num2, minimalBefore, maximalBefore, true, (attribute+"的#后面"));
- if(message!=true){
- return message;
- }
- return true;
- }
- }
- </script>
- <div>
- </div>
- </div>
- </div>
- <div>
- </div>
- </div>
- </center>
-
- </body>
- </html>
|