oracle数据类型varchar2与js和java中用length()判断长度的不同之处

js和java中的length()判断字符串长度的方式不会考虑字符是汉字还是字母、数字、特殊字符,一个汉字也算一个字符长度,

但是oracle中varchar2类型会把汉字当做两个字符长度,这就产生了分歧,我们在判断用户输入字符串长度时就会产生问题。

解决方法之一:把汉字统一转换成某一特殊字符,比如 “*”,用正则表达式筛选出汉字后,替换成两个星号,即:“**”

java代码如下:

String regex = "[\\u4e00-\\u9fa5]+";
if(str.trim().replaceAll(regex, "**").length()>64){
    //do something
}

js代码如下:

if(str.replace(/[^\x00-\xff]/g, "**").length)>100){
     //do something
}

 

你可能感兴趣的:(oracle,正则表达式,长度判断)