• javascript 实现php str_pad


    * 查看php.net官方手册

    string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )

    * javascript code

    /**
     * Pad a string to a certain length with another string
     */
    var STR_PAD_LEFT = 1,
    	STR_PAD_RIGHT = 1<<1,
    	STR_PAD_BOTH = STR_PAD_LEFT|STR_PAD_RIGHT;
    
    function str_pad(input, pad_length, pad_string, pad_type) {
        var input = typeof input === "string" ? input : String.valueOf()(input);
        var i, j;
        var n = pad_length - input.length;
        
        if (n <= 0)
            return input;
        var s = pad_string || " ",
            offset = s.length,
            p = "";  // 要填充的字符串(可能会重复);    
    
        switch (pad_type) {
        	case STR_PAD_BOTH:
        		var q="";
        	    for (i = 0, j=0; 0 < n; n--, i = (i+1) % s.length, j++) {
        	    	// 先在右边添加 后再左边添加
        	    	if (Math.floor(j / s.length) % 2 === 0) {
        	    		q += s.charAt(i);    	    		
        	    	} else {
        	    		p += s.charAt(i);
        	    	}    	    	
            	}
            	input = p + input + q;
        		break;
            case STR_PAD_LEFT:
            	for (i = 0; 0 < n; n--, i = (i+1) % s.length) {
            		p += s.charAt(i);
            	}
                input = p + input;
                break;        
            case STR_PAD_RIGHT:
            default:
            	for (i = 0; 0 < n; n--, i = (i+1) % s.length) {
            		p += s.charAt(i);
            	}
                input = input + p;
        }
    
        return input;
    }
    

      

    * test

    // test
    function echo(s) {
    	console.log(""" +s + """);
    }
    var $input = "Alien";
    
    echo (str_pad($input, 10));                      // produces "Alien     "
    echo (str_pad($input, 10, "-=", STR_PAD_LEFT));  // produces "-=-=-Alien"
    echo (str_pad($input, 10, "_", STR_PAD_BOTH));   // produces "__Alien___"
    echo (str_pad($input,  6, "___"));               // produces "Alien_"
    echo (str_pad($input,  3, "*"));                 // produces "Alien"
    
     /*
    function substr(s, begin, end) {
    	var ns = "", end = end || s.length;
    	for (var i = begin; i < end; i++) {
    		ns += s.charAt(i);
    	}
    	return ns;
    }
    */
    

      

    * Run:

  • 相关阅读:
    【设计模式】策略模式
    【设计模式】模板方法模式
    【C++】《Effective C++》第五章
    【C++】《Effective C++》第四章
    free命令详解(内存)
    top命令详解(动态进程)
    ps命令详解(静态进程)
    SpringBoot_集成Redis
    SpringBoot_热部署插件
    SpringBoot_实现RESTfull API
  • 原文地址:https://www.cnblogs.com/mingzhanghui/p/9409336.html
Copyright © 2020-2023  润新知