java正则用法以及js的正则

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*$)/, "");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值