本文目錄一覽:
java 如何校驗中文?
1.【java代碼】
//校驗中文
public class TestLater {
public static void main(String[] args){
String aa = “中國China人”;
for (int i = 0; i aa.length(); i++) {
String bb = aa.substring(i, i+1);
//生成一個Pattern,同時編譯一個正則表達式.
boolean cc = java.util.regex.Pattern.matches(“[\u4E00-\u9FA5]”, bb);
System.out.println(bb+” is chinese?- “+cc);
}
}
}
2.【validate框架】
field property=”other” depends=”mask”
arg key=”cardinfo.other” position=”0″ bundle=”-tfpartezoa-tfpartmda”/
var
var-namemask/var-name
var-value^[\w|\s|\u4e00-\u9fa5]+$/var-value
/var
/field
java密碼複雜度校驗
qaz,qwer這種都不能通過?這不算連續的吧,要實現這樣的你只能把連續的可能性列出來,比如[q,w,e,r,t,y,u,i,o,p]為一組,比如你的密碼包含wert四個字母,那你可以把這四個字母拆開,先使用w從數組中開始遍歷,發現w與數組中第二個元素相等,那麼再取密碼的第二個字母w與數組中的第三個元素比較,如果相等再比較下一個,滿足有三個字母對應上的就直接返回校驗不通過。
如果是要校驗0123456789和abcdefg這樣的連續的,你可以把密碼的拆分成char數組,數組每個元素轉成數值其實就是這個字元的ascii碼,然後比較相鄰的三個元素ascii碼是不是連續的就可以判斷出來,不過這種方法需要注意一點,比如’@’的ascii為64,’A’的ascii為65也是連續的,需要自己進行篩選。覺得這種方法麻煩的話也可以使用上面的方法把連續的都先列舉出來。
我只寫一下我的想法,僅供參考。
如何使用java validation api進行參數校驗
JAVA中通過Hibernate-Validation進行參數驗證
在開發JAVA伺服器端代碼時,我們會遇到對外部傳來的參數合法性進行驗證,而hibernate-validator提供了一些常用的參數校驗註解,我們可以拿來使用。
1.maven中引入hibernate-validator對應的jar:
dependency
groupIdorg.hibernate/groupId
artifactIdhibernate-validator/artifactId
version4.3.1.Final/version
/dependency
2.在Model中定義要校驗的欄位(即該欄位不能為空,並且最大長度為14):
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
public class PayRequestDto {
/**
* 支付完成時間
**/
@NotEmpty(message=”支付完成時間不能空”)
@Size(max=14,message=”支付完成時間長度不能超過{max}位”)
private String payTime;
public String getPayTime() {
return payTime;
}
public void setPayTime(String payTime) {
this.payTime = payTime;
}
}
3.定義Validation工具類:
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import org.hibernate.validator.HibernateValidator;
import com.atai.framework.lang.AppException;
public class ValidationUtils {
/**
* 使用hibernate的註解來進行驗證
*
*/
private static Validator validator = Validation
.byProvider(HibernateValidator.class).configure().failFast(true).buildValidatorFactory().getValidator();
/**
* 功能描述: br
* 〈註解驗證參數〉
*
* @param obj
* @see [相關類/方法](可選)
* @since [產品/模塊版本](可選)
*/
public static T void validate(T obj) {
SetConstraintViolationT constraintViolations = validator.validate(obj);
// 拋出檢驗異常
if (constraintViolations.size() 0) {
throw new AppException(“0001”, String.format(“參數校驗失敗:%s”, constraintViolations.iterator().next().getMessage()));
}
}
}
4.在代碼中調用工具類進行參數校驗:
ValidationUtils.validate(requestDto);
以下是對hibernate-validator中部分註解進行描述:
@AssertTrue 用於boolean欄位,該欄位只能為true
@AssertFalse 該欄位的值只能為false
@CreditCardNumber 對信用卡號進行一個大致的驗證
@DecimalMax 只能小於或等於該值
@DecimalMin 只能大於或等於該值
@Digits(integer=,fraction=) 檢查是否是一種數字的整數、分數,小數位數的數字
@Email 檢查是否是一個有效的email地址
@Future 檢查該欄位的日期是否是屬於將來的日期
@Length(min=,max=) 檢查所屬的欄位的長度是否在min和max之間,只能用於字元串
@Max 該欄位的值只能小於或等於該值
@Min 該欄位的值只能大於或等於該值
@NotNull 不能為null
@NotBlank 不能為空,檢查時會將空格忽略
@NotEmpty 不能為空,這裡的空是指空字元串
@Null 檢查該欄位為空
@Past 檢查該欄位的日期是在過去
@Pattern(regex=,flag=) 被注釋的元素必須符合指定的正則表達式
@Range(min=,max=,message=) 被注釋的元素必須在合適的範圍內
@Size(min=, max=) 檢查該欄位的size是否在min和max之間,可以是字元串、數組、集合、Map等
@URL(protocol=,host,port) 檢查是否是一個有效的URL,如果提供了protocol,host等,則該URL還需滿足提供的條件
@Valid 該註解主要用於欄位為一個包含其他對象的集合或map或數組的欄位,或該欄位直接為一個其他對象的引用,這樣在檢查當前對象的同時也會檢查該欄位所引用的對象
java中如何進行密碼校驗
一般有2種
辦法,
一是用正則表達式匹配法;二就是要你自己寫校驗字元串的
java代碼
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/258682.html