java:
import java.io.UnsupportedEncodingException;
import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
/**
* 入力値チェック
*
* @author pengting
*
*/
public class CheckUnit {
/**
* 入力値チェック
* @param value 入力値
* @param min 最小桁数
* @param max 最大桁数
* @param type 属性
* @return 処理結果(正常:true、エラー:false)
*/
public boolean chkInputRules(String value, int min, int max, int type)
throws MalformedPatternException {
PatternCompiler compiler = new Perl5Compiler();
PatternMatcher matcher = new Perl5Matcher();
if (value.length() >= min && value.length() <= max) {
if (type == 1) {
if (matcher.matches(value, compiler.compile("^[0-9]+$"))) {
return true;
}
} else if (type == 2) {
if (matcher.matches(value, compiler.compile("^[A-Za-z]+$"))) {
return true;
}
} else if (type == 3) {
if (matcher.matches(value, compiler.compile("^[A-Za-z0-9]+$"))) {
return true;
}
} else if (type == 4) {
if (checkZenTaku(value)) {
return true;
}
}else {
return true;
}
}
return false;
}
/**
* 全角チェック
* @param sStr 入力文字列
* @return 処理結果(正常:true、エラー:false)
*/
public static boolean checkZenTaku(String sStr) {
int charNo = 0;
int byteNo = 0;
try {
byte buf[] = sStr.getBytes("UTF-8");
while (charNo < sStr.getBytes("UTF-8").length) {
byteNo = 7;
if ((buf[charNo] >> 7) == 0) {
charNo++;
return false;
} else {
while (((buf[charNo] >> byteNo) & 0x01) != 0) {
byteNo--;
}
charNo = charNo + (7 - byteNo);
}
}
} catch (UnsupportedEncodingException e) {
return false;
}
return true;
}
}
js:
/**
* 入力値チェック
* @param val 入力値
* @param min 最小桁数
* @param max 最大桁数
* @param type 属性 1:数字 2:英字 3:英数字 4:全角文字
* @return 処理結果(正常:true、エラー:false)
*/
function chkInputRules(val, min, max, type) {
if (val.length < min || val.length > max) {
return false;
} else if (type == 1) {
if (isNaN(val)){
return false;
}
} else if (type == 2) {
reg = /^[a-zA-Z]+$/;
if (!reg.test(val)) {
return false;
}
} else if (type == 3) {
reg = /^[a-zA-Z0-9]+$/;
if (!reg.test(val)) {
return false;
}
} else if (type == 4) {
return isZenkaku(val);
}
return true;
}
/**
* 全角文字 かどうかをチェックする
* @param sVal 入力値
* @return 処理結果(正常:true、エラー:false)
*/
function isZenkaku( sVal ) {
var iCode;
for (var i = 0; i
iCode = sVal.charCodeAt (i);
if ((iCode < 127 && iCode != 13 && iCode != 10) || (iCode >= 0xff61 && iCode <= 0xff9f)){
return false;
}
}
return true;
}
/**
* 不正文字入力チェック
* @param val 入力値
* @return 処理結果(正常:true、エラー:false)
*/
function chkInputWrongful(val) {
reg = /[/;/'/"/:/,/|/*/>/=/%/+]+/;
if (reg.test(val)){
return false;
}
return true;
}
/** * 空欄を削除した」と * @param str 入力値 * @return */function trim(str) { return str.replace(/(^/s*)|(/s*$)/, "");}