JS的一些常见验证代码
1
//檢查空串
2
function isEmpty(str){
3
if((str == null)||(str.length == 0)) return (true);
4
else return(false);
5
}
6
7
//檢查是否未數字
8
function isDigit(theNum){
9
var theMask = "0123456789";
10
if (isEmpty(theNum)) return(false);
11
else if(theMask.indexOf(theNum) == -1) return(false);
12
return(true);
13
}
14
15
//去掉左空格
16
function trimLeft(str){
17
if(str.charAt(0) == " "){
18
str = str.slice(1);
19
str = trimLeft(str);
20
}
21
return str;
22
}
23
24
//去掉右空格
25
function trimRight(str){
26
if(str.charAt( str.length - 1 ) == " "){
27
str = str.slice(0,str.length - 1);
28
str = trimRight(str);
29
}
30
return str;
31
}
32
33
//去掉左右空格
34
function trim(str){
35
return trimLeft(trimRight(str));
36
}
37
38
//檢查是否是int
39
function isInt(str){
40
if(str==""){
41
return (false);
42
}
43
else{
44
for(i=0;i<str.length;i++){
45
var chr = str.charAt(i);
46
if(!(chr>='0' && chr<='9')){
47
return (false);
48
}
49
}
50
}
51
return (true);
52
}
53
54
//檢查str是小數,它的整數部分不多于i位,小數部分不多于j位
55
function isDecimalNoMsg(str,i,j){
56
var dot = str.indexOf(".");
57
var dot_last = str.lastIndexOf(".");
58
var str_f = "";
59
var str_b = "";
60
if ( dot != -1 ){
61
str_f = str.substring(0,dot);
62
} else {
63
str_f = str;
64
}
65
66
if ( dot_last != -1 ){
67
str_b = str.substring(dot+1);
68
} else {
69
str_b = str;
70
}
71
72
if( isInt( str_f ) == false ){
73
//alert(strMsg);
74
return false;
75
} else if ( isInt( str_b ) == false ){
76
//alert(strMsg);
77
return false;
78
} else if ( dot != dot_last ){
79
//alert(strMsg);
80
return false;
81
} else if(dot==0 || dot_last==0){
82
//alert(strMsg);
83
return false;
84
}
85
86
if(str_f.length>i){
87
//alert(strMsg);
88
return false;
89
}
90
if(dot!=-1 && str_b.length>j){
91
//alert(strMsg);
92
return false;
93
}
94
return true;
95
}
96
97
//檢查日期格式Format: 99999999)
98
function judgeDateFormat(dateStr){
99
var re,r;
100
re = /\d{8}/;
101
r = dateStr.match(re);
102
return(r);
103
}
104
105
//檢查時間格式(Format: 999999)
106
function judgeTimeFormat(timeStr){
107
var re,r;
108
re = /\d{6}/;
109
r = timeStr.match(re);
110
return(r);
111
}
112
113
//檢查日期是否合法(Format: YYYYMMDD).
114
function validateDate(theStr){
115
if(theStr.length!=8){
116
return (false);
117
} else {
118
if(theStr=="99999999")
119
return (true);
120
var y = theStr.substring(0,4);
121
var m = theStr.substring(4,6);
122
var d = theStr.substring(6,8);
123
var maxDays = 31;
124
if(isInt(m)==false||isInt(d)==false||isInt(y)==false){
125
return(false);
126
}
127
else if (y.length < 4){ return(false);}
128
else if (!isBetween(m,1,12)){ return(false);}
129
if(m.length!=2){ return(false);}
130
else if (m==4||m==6||m==9||m==11)maxDays = 30;
131
else if (m==2){
132
if(y%4>0)maxDays = 28;
133
else if(y%100==0&&y%400>0)maxDays = 28;
134
else maxDays = 29;
135
}
136
if(isBetween(d,1,maxDays)==false){ return(false);}
137
if(d.length!=2){ return(false);}
138
return(true);
139
140
}
141
}
142
143
//檢查時間是否合法(Format: HHMMSS).
144
function validateTime(theStr){
145
if(theStr.length!=6){
146
return (false);
147
} else {
148
if(theStr == "240000"){
149
return (true);
150
}
151
var h = theStr.substring(0,2);
152
var m = theStr.substring(2,4);
153
var s = theStr.substring(4,6);
154
if(isInt(h)==false||isInt(m)==false||isInt(s)==false){
155
return(false);
156
}
157
else if (h.length < 2){ return(false);}
158
else if (!isBetween(h,0,23)){ return(false);}
159
else if (!isBetween(m,0,59)){ return(false);}
160
else if (!isBetween(s,0,59)){ return(false);}
161
return true;
162
}
163
}
164
//檢查str包含漢字時最大長度不大于maxLen
165
function ChineseLenLimit( str, maxLen){
166
var Strs = str;
167
var strlength=0;
168
var i;
169
for ( i=0;i<str.length;i++) {
170
if(str.charCodeAt(i)>=1000)
171
strlength += 2;
172
else
173
strlength += 1;
174
}
175
if ( strlength > maxLen ){
176
return false;
177
}
178
return true;
179
180
}
181
182
//檢查val在lo與hi之間
183
function isBetween(val,lo,hi){
184
if ((val < lo) || (val > hi)){ return(false);}
185
else { return(true);}
186
}
187
188
// 檢查charC是‘0’~‘9’
189
function chkChar(charC) {
190
if (charC == null || charC.length == 0) {
191
return false;
192
}
193
if (charC == '0')return true;
194
if (charC == '1')return true;
195
if (charC == '2')return true;
196
if (charC == '3')return true;
197
if (charC == '4')return true;
198
if (charC == '5')return true;
199
if (charC == '6')return true;
200
if (charC == '7')return true;
201
if (charC == '8')return true;
202
if (charC == '9')return true;
203
return false;
204
}
205
206
// 檢查intI是正整數
207
function chkInt(intI) {
208
if (intI == null || intI.length == 0) {
209
return false;
210
}
211
for(var i=0;i<intI.length;i++) {
212
if (!chkChar(intI.charAt(i))) {
213
return false;
214
}
215
}
216
if (intI.charAt(0) == '0') {
217
return false;
218
}
219
return true;
220
}
221
// 檢查numN是數字
222
function chkNumber(numN) {
223
if (numN == null || numN.length == 0) {
224
return false;
225
}
226
for(var i=0;i<numN.length;i++) {
227
if (!chkChar(numN.charAt(i))) {
228
return false;
229
}
230
}
231
if (numN.length > 1 && numN.charAt(0) == '0') {
232
return false;
233
}
234
return true;
235
}
236
// 檢查錢數小數點后最多2位
237
function chkAmount(amtA) {
238
if (amtA == null || amtA.length == 0) {
239
return false;
240
}
241
var amtArray = new Array();
242
amtArray = amtA.split(".");
243
if (amtArray.length > 2) {
244
return false;
245
}
246
if (amtArray.length == 1) {
247
if (!chkNumber(amtArray[0])) {
248
return false;
249
}
250
return true;
251
}
252
if (!chkNumber(amtArray[0])) {
253
return false;
254
}
255
if (amtArray[1].length > 2) {
256
return false;
257
}
258
for(var i=0;i<amtArray[1].length;i++) {
259
if (!chkChar(amtArray[1].charAt(i))) {
260
return false;
261
}
262
}
263
return true;
264
}
265
//檢查身份證
266
function checkAgentId(agentId){
267
if (agentId.length==10){
268
if (((agentId.charAt(0)=="A") && (agentId.charAt(1)=="A"))||((agentId.charAt(0)=="A") && (agentId.charAt(1)=="Z"))){
269
return true;
270
}else{
271
checknum1=((agentId.charAt(0)>="A") && (agentId.charAt(0)<="Z"));
272
checknum2=((agentId.charAt(1)==1) || (agentId.charAt(1)==2));
273
if (checknum2 && checknum1){
274
id1 = agentId.charAt(0);
275
if (id1 == 'A') {id0=1;}
276
else if (id1 == 'B') { id0=10 ;}
277
else if (id1 == 'C') { id0=19 ;}
278
else if (id1 == 'D') { id0=28 ;}
279
else if (id1 == 'E') { id0=37 ;}
280
else if (id1 == 'F') { id0=46 ;}
281
else if (id1 == 'G') { id0=55 ;}
282
else if (id1 == 'H') { id0=64 ;}
283
else if (id1 == 'I') { id0=39 ;}
284
else if (id1 == 'J') { id0=73 ;}
285
else if (id1 == 'K') { id0=82 ;}
286
else if (id1 == 'L') { id0=2 ;}
287
else if (id1 == 'M') { id0=11 ;}
288
else if (id1 == 'N') { id0=20 ;}
289
else if (id1 == 'O') { id0=48 ;}
290
else if (id1 == 'P') { id0=29 ;}
291
else if (id1 == 'Q') { id0=38 ;}
292
else if (id1 == 'R') { id0=47 ;}
293
else if (id1 == 'S') { id0=56 ;}
294
else if (id1 == 'T') { id0=65 ;}
295
else if (id1 == 'U') { id0=74 ;}
296
else if (id1 == 'V') { id0=83 ;}
297
else if (id1 == 'W') { id0=21 ;}
298
else if (id1 == 'X') { id0=3 ;}
299
else if (id1 == 'Y') { id0=12 ;}
300
else if (id1 == 'Z') { id0=30 ;}
301
id2 = id0 + agentId.charAt(1)*8 + agentId.charAt(2)*7 + agentId.charAt(3)*6 + agentId.charAt(4)*5 + agentId.charAt(5)*4 + agentId.charAt(6)*3 + agentId.charAt(7)*2 + agentId.charAt(8)*1 + agentId.charAt(9)*1;
302
if (id2 % 10 == 0){
303
return true;
304
}
305
}
306
}
307
}
308
return false;
309
}
310
311
//轉換從UTF-8 到Big5 或 GB2312
312
function Unicode2Str(str){
313
var re=/&#[\da-fA-F]{1,5};/ig;
314
var arr=str.match(re);
315
if(arr==null)return("");
316
var size=arr.length;
317
var arr2=new Array(size);
318
for(var i=0;i<arr.length;i++){
319
arr2[i]=String.fromCharCode(arr[i].replace(/[&#;]/g,""));
320
}
321
for(var i=0;i<arr.length;i++){
322
str=str.replace(arr[i],arr2[i]);
323
}
324
//return(arr.toString().replace(/,/g,""))
325
return str;
326
}
327
328
//獲得當前客戶端時間 (Format: YYYYMMDD).
329
function getCurrentDate(){
330
var dateObj= new Date();
331
var dateString=dateObj.getFullYear();
332
if(dateObj.getMonth()<10){
333
dateString=dateString+'0'+dateObj.getMonth();
334
}else{
335
dateString+=dateObj.getMonth();
336
}
337
if(dateObj.getDate()<10){
338
dateString+='0'+dateObj.getDate();
339
}else{
340
dateString+=dateObj.getDate();
341
}
342
return dateString;
343
}
344
345
//居中顯示彈出窗口
346
function PopWindowOnCenter(url,title,iwidth,iheight){
347
var ileft,itop;
348
ileft = (window.screen.width-iwidth)/2;
349
itop = (window.screen.height-iheight)/2;
350
351
window.open(url,title,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width='+iwidth+',height='+iheight+',left='+ileft+',top='+itop);
352
}
353
354
//移動選中的成員從objFromId的select到objToId的select
355
function moveTo(objFromId,objToId){
356
var objFrom = document.getElementById(objFromId);
357
var objTo = document.getElementById(objToId);
358
359
var len = objFrom.length;
360
for(var i=len-1; i>=0; i--){
361
if(objFrom.options[i].selected){
362
var j = 0;
363
for(j = 0; j < objTo.length; j++){
364
if(objFrom.options[i].value == objTo.options[j].value){
365
break;
366
}
367
}
368
if(j == objTo.length){//the selected item is not in objTo.
369
objFrom.options[i].selected = false;
370
var option1 = objFrom.options[i];
371
objTo.options.add(new Option(option1.text, option1.value));
372
objFrom.options.remove(i);
373
}
374
objFrom = document.getElementById(objFromId);
375
len = objFrom.length;
376
}
377
}
378
}
379
380
//移動全部成員從objFromId的select到objToId的select
381
function moveAllTo(objFromId,objToId){
382
var objFrom = document.getElementById(objFromId);
383
var objTo = document.getElementById(objToId);
384
385
var len = objFrom.length;
386
for(var i=len-1; i>=0; i--){
387
var j = 0;
388
for(j = 0; j < objTo.length; j++){
389
if(objFrom.options[i].value == objTo.options[j].value){
390
break;
391
}
392
}
393
if(j == objTo.length){//the selected item is not in objTo.
394
var option1 = objFrom.options[i];
395
objTo.options.add(new Option(option1.text, option1.value));
396
objFrom.options.remove(i);
397
}
398
objFrom = document.getElementById(objFromId);
399
len = objFrom.length;
400
}
401
}
402
403
404
//屏蔽非數字鍵
405
function checkKey(){
406
if(event.keyCode<48 || (event.keyCode>57 && event.keyCode<96)
407
|| event.keyCode>105){
408
if(event.keyCode != 8){
409
event.returnValue=false;
410
}
411
}
412
}
413
414
//用與樹狀列表的顯示
415
function showMenu(id,ulId){
416
var obj = document.getElementById(id);
417
418
if(obj.className == ""){
419
obj.className = "selected";
420
document.getElementById(ulId).style.display = "block";
421
}
422
else{
423
obj.className = "";
424
document.getElementById(ulId).style.display = "none";
425
}
426
}
427
428
//檢查str中是否包含漢字
429
function CheckChinese( str){
430
var Strs = str;
431
var i;
432
for ( i=0;i<str.length;i++) {
433
if(str.charCodeAt(i)>=1000){
434
return true;
435
}
436
}
437
return false;
438
}
439
440
//校验是否全由数字组成
441
442
程序代码
443
function isDigit(s)
444
{
445
var patrn=/^[0-9]{1,20}$/;
446
if (!patrn.exec(s)) return false
447
return true
448
}
449
450
//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
451
452
程序代码
453
function isRegisterUserName(s)
454
{
455
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
456
if (!patrn.exec(s)) return false
457
return true
458
}
459
460
//校验用户姓名:只能输入1-30个以字母开头的字串
461
462
程序代码
463
function isTrueName(s)
464
{
465
var patrn=/^[a-zA-Z]{1,30}$/;
466
if (!patrn.exec(s)) return false
467
return true
468
}
469
470
//校验密码:只能输入6-20个字母、数字、下划线
471
472
程序代码
473
function isPasswd(s)
474
{
475
var patrn=/^(w){6,20}$/;
476
if (!patrn.exec(s)) return false
477
return true
478
}
479
480
//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
481
482
程序代码
483
function isTel(s)
484
{
485
//var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?(d){1,12})+$/;
486
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;
487
if (!patrn.exec(s)) return false
488
return true
489
}
490
491
//校验手机号码:必须以数字开头,除数字外,可含有“-”
492
493
程序代码
494
function isMobil(s)
495
{
496
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;
497
if (!patrn.exec(s)) return false
498
return true
499
}
500
501
//校验邮政编码
502
503
程序代码
504
function isPostalCode(s)
505
{
506
//var patrn=/^[a-zA-Z0-9]{3,12}$/;
507
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
508
if (!patrn.exec(s)) return false
509
return true
510
}
511
512
//校验搜索关键字
513
514
程序代码
515
function isSearch(s)
516
{
517
var patrn=/^[^`~!@#$%^&*()+=|][]{}:;',.<>/?]{1}[^`~!@$%^&()+=|][]{}:;',.<>?]{0,19}$/;
518
if (!patrn.exec(s)) return false
519
return true
520
}
521
522
程序代码
523
function isIP(s) //by zergling
524
{
525
var patrn=/^[0-9.]{1,20}$/;
526
if (!patrn.exec(s)) return false
527
return true
528
}
529
530
/**
531
* 功能:使指定值的指定名称的单复选框处于选中状态。
532
* radioName:单选框组件名
533
* val:指定值
534
*/
535
function makeRadioChecked(radioName, val) {
536
var obj = document.all[radioName];
537
try {
538
if (obj) {
539
if (obj.type == "radio" && obj.value == val) {
540
obj.checked = true;
541
}
542
for (var i = 0; i < obj.length; i++) {
543
if (obj[i].type == "radio" && obj[i].value == val) {
544
obj[i].checked = true;
545
break;
546
}
547
}
548
}
549
} catch(exception) {
550
alert("error");
551
}
552
}
553
554
自创javascrit分页代码。
555
556
function showpages(total,perpage,current,filename,seed,bShow){
557
//total总记录数,perpage每页记录数,current当前记录,filename文件名?page=,seed中间数字两边间隔数,bshow显示中间数字页面
558
//
559
560
561
var sRet,i,startPage,endPage,totalPage
562
//startPage:循环开始/endPage:循环结束/totalPage:总页数
563
//处理URL中的空格
564
if (filename!=''){
565
filename="&"+filename;
566
}
567
if (total % perpage==0 ){
568
569
totalPage=total/perpage;
570
571
}else{
572
573
totalPage=Math.floor(total/perpage)+1;
574
}
575
576
577
if (totalPage<=10){
578
startPage=1;
579
}else{
580
if ((current-seed) >0) {
581
startPage=current-seed;
582
}else{
583
startPage=1;
584
}
585
}
586
587
if (totalPage<=10) {
588
endPage=totalPage
589
}else{
590
if ((current+seed)<totalPage) {
591
endPage=current+seed
592
}else{
593
endPage=totalPage
594
}
595
}
596
597
if (current<seed) {
598
if (totalPage>10){
599
endPage=10
600
}
601
}
602
var sRet1=""
603
604
if (bShow) {
605
for (i=startPage;i<=endPage;i++)
606
{
607
608
if (i==current)
609
{
610
sRet1=sRet1+"<font style=''><b>"+current+"</b></font> "
611
}
612
else
613
{
614
sRet1=sRet1+"<a href=?page="+i+filename+">"+i+"</a> "
615
}
616
617
}
618
}
619
620
sRet=""
621
//sRet=sRet+"<form name=jumpPage mothod=post action= >"
622
sRet=sRet+"<font class=tcat2>共"+total+"条,"
623
sRet=sRet+"第"+current+"页/共"+ totalPage+"页, "
624
sRet=sRet+"<a href=?page=1"+ filename+">第一页</a> "
625
if ((current==1)&&(current!=totalPage)){
626
627
628
sRet=sRet+" 上一页 "+sRet1+" <a href=?page="+(current+1) +filename+">下一页</a>"
629
}else{
630
if (current>1) {
631
632
if (current<totalPage) {
633
sRet=sRet+" <a href=?page="+(current-1)+filename+">上一页</a> "+sRet1+" <a href=?page="+(current+1)+filename+">下一页</a>"
634
}else{
635
if (current==totalPage) {
636
sRet=sRet+" <a href=?page="+(current-1)+filename+">上一页</a> "+sRet1+" 下一页"
637
638
}
639
}
640
}else{
641
sRet=sRet+" 上一页 "+sRet1+" 下一页"
642
}
643
}
644
sRet=sRet+" <a href=?page="+ totalPage+filename+">最末页</a>"
645
//sRet=sRet+"<input type=hidden name=wheretogo value=go> "
646
//sRet=sRet+"<input type=hidden name=maxpage value="+totalPage+">"
647
sRet=sRet+" 跳转到<input name=currentPage class=border1px size=3 onkeydown=if((event.keyCode==13)&&(this.value!='')&&(this.value!=0)&&(this.value<"+(totalPage+1)+"))window.location='?page='+this.value+'"+filename+"'; onkeyup=if(isNaN(this.value))this.value=''; >页 "
648
//sRet=sRet+"<input type=button value=GO class=border1px onclick=jump('"+filename+"');> "
649
650
sRet=sRet+"</font>"
651
//sRet=sRet+"</form>"
652
//alert(sRet);
653
document.write(sRet)
654
655
}
656
657
检查有没有空格
658
if(aa.indexOf(" ")>=0){
659
alert("aa中不允许含有空格!!");
660
document.myForm.aa.focus();
661
return false;
662
}
663
JS的一些常见验证代码的更多相关文章
- 表单验证代码实例:jquery.validate.js表单验证插件
jquery.validate.js是JQuery旗下的一个验证插件,借助JQuery的优势,我们可以迅速验证一些常见的输入,并且可以自己扩充自己的验证方法.使用前请先下载必要的JQuery插件:jq ...
- SpringMVC学习系列-后记 结合SpringMVC和Hibernate-validator,根据后台验证规则自动生成前台的js验证代码
在SpringMVC学习系列(6) 之 数据验证中我们已经学习了如何结合Hibernate-validator进行后台的数据合法性验证,但是通常来说后台验证只是第二道保险,为了更好的用户体验会现在前端 ...
- 原生js制作表单验证,基本的表单验证方法
表单验证是web前端最常见的功能之一,也属于前端开发的基本功.自己完成一个表单验证的开发,也有助于加深对字符串处理和正则表达式的理解. 基本的表单验证包括如:字母验证.数字验证.字母和数字验证.汉字验 ...
- NODE.JS学习的常见误区及四大名著
NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang ...
- bootstrapValidator.js 做表单验证
有这样的一个场景,我们在提交form表单的时候 可能要做一些验证,比如判断是不是为空,电话的格式验证,邮箱的格式验证等等,手写起来也是可以得. 但是今天我介绍一个bootstrap插件简化开发.就是b ...
- [转]jQuery.validate插件在失去焦点时执行验证代码
转:http://my.oschina.net/enyo/blog/311566 关于 jquery.validate.js 表单验证插件如何在失去焦点时做验证.看手册后发现默认是在表单提交时执行验证 ...
- atitit js 开发工具 ide的代码结构显示(func list) outline总结
atitit js 开发工具 ide的代码结构显示(func list) outline总结 eclips环境::4.3.1 #-------需要一个js开发工具,可以显示outline或者代码结构显 ...
- (转)jquery.validate.js 的 remote 后台验证
之前已经有一篇关于jquery.validate.js验证的文章,还不太理解的可以先看看:jQuery Validate 表单验证(这篇文章只是介绍了一下如何实现前台验证,并没有涉及后台验证remot ...
- {{angular.js 使用技巧}} - 基于验证框架的扩展(w5cValidator)
开场白: angular.js 是谷歌出的前端js MV*框架,我也是今年做 worktile 的时候才开始接触的,起初技术选型的时候还准备使用 backbone(毕竟很多大公司在使用他,而且也是比较 ...
随机推荐
- Socket编程中的长连接、短链接以及心跳包机制详解
参考:http://blog.csdn.net/zdwzzu2006/article/details/7723738 一.定义 1.TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,se ...
- 最近用到mysql和mybatis结合常用的知识点坐下整理
1.当用到集合in(x,x...)参数可以单个或者多个 ,当为单个时: findbyIds(List<Long> ids),或者findByids(Long [] ids) <se ...
- ArrayList、HashSet、HashTable、List、Dictionary的区别
在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求. 由于这种限制不方便,所以出现了ArrayList. ArrayList.List<T> ArrayList是可变长数组,你 ...
- IIS错误解决办法(HTTP Error 500.19 - Internal Server Error)
window10 切换登陆用户,VS2015的IIS Express 调试代码报HTTP Error 500.19 - Internal Server Error 错误,无法读取配置文件解决办法. I ...
- Linux的一些简单命令(四)-用户和组账户管理
linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源.系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰 1.保存用户信息的文件:/etc/ ...
- bat脚本-set(setlocal enabledelayedexpansion) 学习
设置本地为延迟扩展.其实也就是:延迟变量,全称延迟环境变量扩展. 事件一: @echo off set a=4 set a=5&echo %a% pause 解说:为什么是4而不是5呢?在ec ...
- openstack私有云布署实践【18 修改实例DHCP服务的DNS IP】
某天,由于Linux服务器默认没有DNS缓存功能,每次服务器每访问一个http域名链接时,都会触发一次DNS域名解析查询,降低了调用API接口的时延,所以我司后续启用的内网的dnsmasq DNS服务 ...
- Chrome开发者控制台的这些功能你都知道吗?
Chrome内置了一些开发者工具,这些工具提供了很多的功能.今天,我们将会专注于JavaScript控制台. 在我编程的过程中,这个控制台为我提供了大量的帮助. 如果你正在电脑端阅读这篇文章,你可以在 ...
- C#删除只读文件或文件夹(解决File.Delete无法删除文件)
引用: http://www.jb51.net/article/72181.htm C#删除只读文件的方法: if (File.GetAttributes(FFName).ToString().I ...
- jenkins jmeter持续集成批处理jmx脚本
这篇文章介绍jenkis jmeter的持续集成,利用jenkins定时任务去批处理执行jmeter的jmx脚本文件,并且生成测试报告 1:jmeter的安装这里我就不在赘述了,如有问题可参考我的jm ...