2007-01-25

Java版-常用的身份證、IP、統一編號..檢查程式

package com.info.website.util;

import java.util.regex.Pattern;
/**

Title: 常用的檢查機制


Description:身份證字號,IP,Email,門號,關鍵字過濾等檢查功能


Copyright: Copyright (c) 2006


Company:InfoTech Ltd.



@author Tommy Kao, PMP
@version 1.0
@since 2006/07/19
/
public class Validator {
private static final Pattern ASCII_PATTERN = Pattern
.compile("[\\x00-\\x7F]*");
public static boolean isPureASCII(String msg) {
boolean result = false;
if (ASCII_PATTERN.matcher(msg).matches()) {
result = true;
}
return result;
}

/**
IP Address 檢查程式
@since 2006/07/19
**/
public static boolean isValidIPAddr(String msg) {
boolean result = true;
String []tmp = msg.split(".");
if (tmp.length<=4) {
for (int i = 0; i < tmp.length; i++) {
if (Integer.parseInt(tmp[i]) > 255) {
result = false;
}
}
}
return result;
}

/**
手機門號檢查程式
@since 2006/07/19
**/
public static final Pattern MSISDN_PATTERN = Pattern
.compile("[+-]?\\d{10,12}");
public static boolean isValidMSISDN(String msisdn) {
boolean result = false;
if (MSISDN_PATTERN.matcher(msisdn).matches()) {
result = true;
}
return result;
}

public static final Pattern EMAIL_PATTERN = Pattern
.compile("^\\w+\\.*\\w+@(\\w+\\.){1,5}[a-zA-Z]{2,3}$");
/**
Email 格式檢查程式
@since 2006/07/19
**/
public static boolean isValidEmail(String email) {
boolean result = false;
if (EMAIL_PATTERN.matcher(email).matches()) {
result = true;
}
return result;
}

public static final Pattern TWPID_PATTERN = Pattern
.compile("[ABCDEFGHJKLMNPQRSTUVXYWZIO][12]\\d{8}");
/**
身份證字號檢查程式,身份證字號規則:
字母(ABCDEFGHJKLMNPQRSTUVXYWZIO)對應一組數(10~35),
令其十位數為X1,個位數為X2;( 如A:X1=1 , X2=0 );D表示2~9數字
Y = X1 + 9*X2 + 8*D1 + 7*D2 + 6*D3 + 5*D4 + 4*D5 + 3*D6 + 2*D7+ 1*D8 + D9
如Y能被10整除,則表示該身份證號碼為正確,否則為錯誤。
臺北市(A)、臺中市(B)、基隆市(C)、臺南市(D)、高雄市(E)、臺北縣(F)、
宜蘭縣(G)、桃園縣(H)、嘉義市(I)、新竹縣(J)、苗栗縣(K)、臺中縣(L)、
南投縣(M)、彰化縣(N)、新竹市(O)、雲林縣(P)、嘉義縣(Q)、臺南縣(R)、
高雄縣(S)、屏東縣(T)、花蓮縣(U)、臺東縣(V)、金門縣(W)、澎湖縣(X)、
陽明山(Y)、連江縣(Z)
@since 2006/07/19
/
public static boolean isValidTWPID(String twpid) {
boolean result = false;
String pattern = "ABCDEFGHJKLMNPQRSTUVXYWZIO";
if (TWPID_PATTERN.matcher(twpid.toUpperCase()).matches()) {
int code = pattern.indexOf(twpid.toUpperCase().charAt(0)) + 10;
int sum = 0;
sum = (int) (code / 10) + 9 (code % 10) + 8 (twpid.charAt(1) - '0')
+ 7 (twpid.charAt(2) - '0') + 6 (twpid.charAt(3) - '0')
+ 5 (twpid.charAt(4) - '0') + 4 (twpid.charAt(5) - '0')
+ 3 (twpid.charAt(6) - '0') + 2 (twpid.charAt(7) - '0')
+ 1 (twpid.charAt(8) - '0') + (twpid.charAt(9) - '0');
if ( (sum % 10) == 0) {
result = true;
}
}
return result;
}

public static final Pattern TWBID_PATTERN = Pattern
.compile("^[0-9]{8}$");
/**
營利事業統一編號檢查程式
可至 http://www.etax.nat.gov.tw/ 查詢營業登記資料
@since 2006/07/19
/
public static boolean isValidTWBID(String twbid) {
boolean result = false;
String weight = "12121241";
boolean type2 = false; //第七個數是否為七
if (TWBID_PATTERN.matcher(twbid).matches()) {
int tmp = 0, sum = 0;
for (int i = 0; i < 8; i++) {
tmp = (twbid.charAt(i) - '0') (weight.charAt(i) - '0');
sum += (int) (tmp / 10) + (tmp % 10); //取出十位數和個位數相加
if (i == 6 && twbid.charAt(i) == '7') {
type2 = true;
}
}
if (type2) {
if ( (sum % 10) == 0 || ( (sum + 1) % 10) == 0) { //如果第七位數為7
result = true;
}
} else {
if ( (sum % 10) == 0) {
result = true;
}
}
}
return result;
}

public static boolean isValidQueryString(String sqlStr) {
if (sqlStr == null || sqlStr.length() <= 0 || sqlStr.indexOf("@") >= 0 ||
sqlStr.indexOf("'") >= 0 || sqlStr.indexOf("") >= 0 ||
sqlStr.indexOf("\"") >= 0 || sqlStr.indexOf("%") >= 0 ||
sqlStr.indexOf("=") >= 0) {
// "關鍵字不可包含 ( @ ' % \ = ) 等字元\n";
return false;
}
return true;
}
}

2007-01-11

asp下格式化時間和日期的函數

我們有時候遇到的日期格式可能是2004-1-12 ,系統自動將月份中的0去掉了,但是有時候我們需要完整的日期格式 ,如:2004-01-12 那麼怎麼辦呢?下面的幾個函數可以輕鬆搞定。。。。。。

'將一個一位的數字前面加零
function FillZero(str)
ttt=str
if len(str)=1 then
ttt="0" & str
end if
FillZero=ttt
end function

'轉化日期,將 一位補上零 2003-1-2 --> 2003-01-02
function ConvertDate(tDate)
ttt=tDate
if isdate(tDate) then
ttt=year(tDate) & "-" & FillZero(month(tDate)) & "-" & FillZero(day(tDate))
end if
ConvertDate=ttt
end function

'輸入一個日期時間串,轉換成年四位,其他兩位的新的日期時間串
function ConvertDateTime(tDateTime)
ttt=tDateTime
if isdate(tDateTime) then
ttt=year(tDateTime) & "-" & FillZero(month(tDateTime)) & "-" & FillZero(day(tDateTime)) & " " & FillZero(cstr(hour(tDateTime))) & ":" & FillZero(cstr(minute(tDateTime))) & ":" & FillZero(cstr(second(tDateTime)))
end if
ConvertDateTime=ttt
end function

2007-01-03

【MSSQL】如何重置MSDE的sa密碼

【MSSQL】如何重置MSDE的sa密碼

首先登錄到windows系統,進入cmd命令提示符,切換到MSDE的安裝目錄。

執行如下命令登錄到msde:
use osql -E

執行命令更改密碼,其中newpwd是密碼:
sp_password @old = null, @new = 'newpwd', @loginame ='sa'
go

即可完成修改。