您的位置:首页 > 编程语言 > Java开发

java正则用法以及js的正则

2011-05-06 16:13 507 查看
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;
}

/**
* 全角チェック<BR>
* @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<sVal.length; 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*$)/, "");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: