注册用户名字符长度判断细节

        $username = '刷_单8元1单淘宝客服20元1小时_我Q125556733jff';
        var_dump(strlen($username));
        var_dump(Library\Common::username_patten($username));

 

一、使用strlen来判断长度

 

里面的一个汉字会认为长度是3个字符(utf-8编码情况下一个汉字3个字符,gbk编码就是2个字符长度)

例子:

 $username = '刷_单8元';
  var_dump(strlen($username));

 

长度是11。

 

刷,单,元  3*3=9

"_“和"8", 总共是2个长度

9+2=11

 

具体做试验:

$username = '刷';

var_dump(strlen($username));//得到是长度值是3

 

二、使用正则匹配

         $username_patten = '/^[a-zA-Z0-9_\x{4e00}-\x{9fa5}]{3,30}$/u'; //字母、数字、下划线、中文,汉字或字符加起来30个即可
        //注:\x{4e00}-\x{9fa5}作为汉字的范围判断只适合utf-8编码情况下,gb2312不适合目前我们的项目统一使用utf8项目。

        if (preg_match($username_patten, $username)){

 

 

        }

 

特点:正则中会把一个汉字当成一个长度来计算。因为\x{4e00}已经指定了汉字编码

 

解释不是非常科学。记住这个细节的差异就可以了。

 

javascript的验证长度研究

 

/*
 * +---------------------------------
 * 验证指定的字符长度,用来做标题长度验证
 * +---------------------------------
 */
function getStrLeng(str){
    
    var len = str.length;//js内部使用的是utf16编码,如果是中文,一个汉字也算一个长度。所以返回的是字符长度,而不是字节大小
    return len;
    
}
var len = getStrLeng("我们_j");//在js中,一个中文汉str.length字也是一个长度,
/*
 JavaScript中的String内部表示方式始终是UTF16,而它的length也是始终按UTF16 code point去计算,简而言之,length始终返回字符数量,而非字节大小!
 为什么有人测试发现对于同一个字符串"张三",用UTF8编码时返回2,用GBK则得到3呢?那是因为浏览器没能正确识别文件编码,所以判断错了,返回3的结果是一个程序运行出错的结果。
 参考:
 http://segmentfault.com/q/1010000000445715
 因为使用的是utf-16,所以这个编码表里面能够找到所有的汉字,这样情况下,就能够当成一个字符了?
 反正它返回的不是实际的字节长度,而是多少个字符。
 
 http://www.puritys.me/docs-blog/article-107-String-Length-%E4%B8%AD%E6%96%87%E5%AD%97%E4%B8%B2%E9%95%B7%E5%BA%A6.html
 
 使用 string.length 來計算長度時,中文字串會被當成是一個字來計算,因為 Javascript 是使用 multiple byte 計算,就像是 php 的 mb_strlen。
 不管是中文,英文,都當成一個字來算,所以總共是 6 個字,不過有時候我們並不想把中文字當成一個字來計算,因為中文字明明佔的 byte 數就是比較多,所以來看一下中文編碼吧。
*/

alert(len);

/*
 * +---------------------------------
 * 验证指定的字符长度,用来做标题长度验证
 * 这个函数验证是按照字节长度算,所以中文汉字在utf-8编码中是算3个字节
 * +---------------------------------
 */
function getStrLengByBytle(str){
    
    
}

 

时间: 2024-09-20 09:18:38

注册用户名字符长度判断细节的相关文章

PHP 更高效的字符长度判断例子

学PHP的都了解,在PHP中获取字符串有一个strlen自带函数: 这里和大家分享一个在一些特定情况下判断字符串长度较为高效的方式: 来看下面两段代码的执行效率吧,自己理解理解代码的执行思路:  代码如下 复制代码 <?php     //使用strlen方式     $arr = '123456';     $sTime = microtime(1);     if(strlen($arr) > 6){      // echo 1;    }         echo microtime(

js判断字符长度及中英文数字等

 这篇文章主要介绍了js判断字符长度及中英文数字等,需要的朋友可以参考下 代码如下: <script type="text/javascript">  var zfl={};  zfl.GetLength = function(str){  var realLength = 0,len = str.length,charCode = -1;  for(var i=0;i<len;i++){  charCode = str.charCodeAt(i);  if(char

iOS中如何判断中英文混合的字符长度_IOS

废话不多说,直接给大家贴代码了. 一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //第一种方法 NSLog(@"--first-%i",[self convertToInt:@"123我爱你"]); //第二种方法 NSLog(@"--second--%ld",[self getToInt:@&

对象-js 用jquery 判断字符长度是时候出现的一个问题

问题描述 js 用jquery 判断字符长度是时候出现的一个问题 if($("#A").val().length<200) { alert("不能超过200个字符"); return false ; } 在js这样会报 无法获取属性 'length'的值 对象为空 或者 未定义 解决方案 这是jquery对象,js不能这样用 解决方案二: 1,请确定存在某元素的id为A 2.请导入jquery的JS 3.再有问题上图 4.你这逻辑就有错误,($("#

正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度_javascript技巧

判断是否存在中文和全角字符 str.match(/[^\x00-\xff]/ig) 判断包含中文字符串长度 aMatch=str.match(/[^\x00-\x80]/g); str.length+(!aMatch?0:aMatch.length) javascript 判断中文字符长度 一种: 复制代码 代码如下: function _length(str){ var len=0; for(var i=0;i<str.length;i++){ if(str.charAt(i)>'~'){l

判断字符长度函数strlen实例教程

定义和用法 该strlen ( )函数返回的长度字符串. 他的作用是计算字字符长度的,中文一个字为2 语法 strlen(string)   Parameter Description string Required. Specifies the string to check 来看个简单的例子吧.   <?php echo strlen("Hello world!"); ?>   输出为   12 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也

asp.net 入门篇 判断注册用户名是否存在

asp教程.net 入门篇 判断注册用户名是否存在 create procedure [dbo].[yk_marketclient_existsid] @id int   as   declare @str varchar(6)   set @str=''   if exists(select * from dbo.yk_marketclient where id = @id)   set @str='存在'   else   set @str='不存在'   select @str go /*

用jquery验证js里面的一个文本框 字符长度不能超过 10个数

问题描述 用jquery验证js里面的一个文本框 字符长度不能超过 10个数 用jquery验证js里面的一个文本框 字符长度不能超过 10个数 除了用$("#A").val().length>10之外还能怎么判断? 解决方案 我觉得,如果只是长度限制的话,完全可以不用js.你直接只用文本框里面的maxlength长度限制标签;例如: 解决方案二: <input name="A" type="text" id="A"

JavaScript Length 字符长度函数

JavaScript   Length 字符长度函数,在很多时间我们会用length函数了,因为你得前台判断一个用户输入的用户名与密码长度是否是我想规定的就会用到length哦. 高级scripters往往需要知道如何长期一个JavaScript字符串.例如,如果一个webdeveloper是建立一个提交表单,要求用户将不再超过20个字符,那么她将需要检查的长度字符串之前,允许用户提交的数据. 字串长 长度属性返回的字符数是在一个字符串,用一个整数.以下是基本的代码用于访问此属性. <scrip