【YII2】 验证码

Continue Read..

找了很多YII2的验证码  基本都是抄的(也不晓得抄的谁的)

全部都是些 controllers  model 和视图主键  

这个是 舞林写的    直接调用  类似 TP3.2版本的   (还是觉得TP比YII好用  起码文档看的懂)

 

在 controllers里面加

    public function actions() {

        return [

            'captcha' => [

                'class' => 'yii\captcha\CaptchaAction',

                'maxLength' => 5,

                'minLength' => 5

            ],

        ];

    }

 

    function actionYzm(){

        $code = yii::$app->request->post('code');

        var_dump($this->createAction('captcha')->validate($code, false));

        var_dump($code);

    }

    function actionAuthimg(){

        echo $this->createAction('captcha')->run();

    }

 

 

view  里面写

<form action="http://xxx/index/yzm" method="post">

 

<table>

 

    <tr>  

        <td>

            <input type="text" id="code" name="code" />

            <img src="http:/xxx/index/authimg" />

        </td>

    </tr>

    <tr>  

        <td><input type="submit"  value="验证"/></td>

    </tr>

</table>

 

</form>

 

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

排序算法(快速、冒泡)

Continue Read..
快速排序
function oSort(arr)
        {
            if(arr.length<=1)
            {
                return arr;
            }
            var left=[];
            var right=[];
            var oNum = Math.floor(arr.length/2);
            var oNumVode = arr.splice(oNum,1);
            for(var i=0;i

            {

                if(arr[i]

                {

                    left.push(arr[i])

                }

                else

                {

                    right.push(arr[i])

                }

            }

            return oSort(left).concat([oNumVode],oSort(right))

        }

冒泡排序 
var array = [5, 4, 3, 2, 1];

var temp = 0;

for (var i = 0; i < array.length; i++)

{

for (var j = 0; j < array.length - i; j++)

{

if (array[j] > array[j + 1])

{

temp = array[j + 1];

array[j + 1] = array[j];

array[j] = temp;

}

}

}

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

jqeury 截取字符串

Continue Read..
截取字符串abcdefg的efg
var str="abcdefg";
if(/efg/.text(str)){
var efg=str.substr(str.indexOf("efg"),3);
alert(efg);
}

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

jquery 判断一个字符串中出现次数最多的字符,统计这个次数

Continue Read..
判断一个字符串中出现次数最多的字符,统计这个次数
//将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数

var str="abcdefgaddda";
var obj={};
for(var i=0,l=str.length;i<l;i++){
var key=str[i];
if(!obj[key]){
obj[key]=1;
}
else{
obj[key]++;
}
}

/*遍历这个hash table,获取value最大的key和value*/
var max=-1;
var max_key="";
var key;
for(key in obj){
if(max<obj[key]){
max=obj[key];
max_key=key;
}
}
alert("max:"+max+" max_key:"+max_key);

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

jquery 数组去重

Continue Read..
去掉一个数组的重复元素
方法一:
var arr=[1,1,2,3,3,2,1];
Array.prototype.unique=function(){
var ret=[];
var o={};
var len=this.length;
for(var i=0;i<len;i++){
var v=this[i];
if(!o[v]){
o[v]=1;
ret.push(v);
}
}
return ret;
};
alert(arr.unique());

方法二:
var xasiarr=["2012-08-01", "2014-06-01"]
var newqcarr=[];
for(qi=0;qi<xasiarr.length;qi++){
var qinum=$.inArray(xasiarr[qi], newqcarr);
if(qinum==-1){
newqcarr.push(xasiarr[qi]);
}
}

方法三:
function oSort(arr)
        {
            var result ={};
            var newArr=[];
            for(var i=0;i
            {
                if(!result[arr[i]])
                {
                    newArr.push(arr[i])
                    result[arr[i]]=1
                }
            }
            return newArr
        }

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

jquery 克隆、追加

Continue Read..
鼠标单击button1后将button1移动到button2的后面
<div>
<input type="button" id="button1" value="1" onclick="moveBtn(this);">
<input type="button" id="button2" value="2" /> 
</div>
<script type="text/javascript">
function moveBtn(obj){
var clone=obj.cloneNode(true);
var parent=obj.parentNode;
parent.appendChild(clone);
parent.removeChild(obj);
}
</script>

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

jquery 鼠标点击页面中的任意标签,alert该标签的名称

Continue Read..
鼠标点击页面中的任意标签,alert该标签的名称
<script type="text/javascript">
document.onclick=function(evt){
var e=window.event || evt;
var tag=e["target"] || e["srcElement"];
alert(tag.tagName);
}
</script>

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【JS】js获取滚动条距离浏览器顶部,底部的高度

Continue Read..
<html xmlns="http://www.phpernote.com/javascript-function/754.html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js获取滚动条距离浏览器顶部,底部的高度</title>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript">
//取窗口可视范围的高度
function getClientHeight(){   
    var clientHeight=0;   
    if(document.body.clientHeight&&document.documentElement.clientHeight){   
        var clientHeight=(document.body.clientHeight<document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight;           
    }else{   
        var clientHeight=(document.body.clientHeight>document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight;       
    }   
    return clientHeight;   
}
//取窗口滚动条高度
function getScrollTop(){   
    var scrollTop=0;   
    if(document.documentElement&&document.documentElement.scrollTop){   
        scrollTop=document.documentElement.scrollTop;   
    }else if(document.body){   
        scrollTop=document.body.scrollTop;   
    }   
    return scrollTop;   
}
//取文档内容实际高度
function getScrollHeight(){   
    return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight);   
}
window.onscroll=function(){
var height=getClientHeight();
var theight=getScrollTop();
var rheight=getScrollHeight();
var bheight=rheight-theight-height;
document.getElementById('show').innerHTML='此时浏览器可见区域高度为:'+height+'<br />此时文档内容实际高度为:'+rheight+'<br />此时滚动条距离顶部的高度为:'+theight+'<br />此时滚动条距离底部的高度为:'+bheight;
}
function fixDiv(div_id,offsetTop){
var offsetTop=arguments[1]?arguments[1]:0;
    var Obj=$('#'+div_id);
    var ObjTop=Obj.offset().top;
    var isIE6=$.browser.msie && $.browser.version == '6.0';
    if(isIE6){
        $(window).scroll(function(){
if($(window).scrollTop()<=ObjTop){
                    Obj.css({
                        'position':'relative',
                        'top':0
                    });
            }else{
                Obj.css({
                    'position':'absolute',
                    'top':$(window).scrollTop()+offsetTop+'px',
                    'z-index':1
                });
            }
        });
    }else{
        $(window).scroll(function(){
            if($(window).scrollTop()<=ObjTop){
                Obj.css({
                    'position':'relative',
'top':0
                });
            }else{
                Obj.css({
                    'position':'fixed',
                    'top':0+offsetTop+'px',
'z-index':1
                });
            }
        });
    }
}
$(function(){fixDiv('show',5);});
</script>
</head>
<body>
<div style="height:500px;"></div>
<div>http://www.phpernote.com/jquery/251.html</div>
<div id="show"></div>
<div style="height:2000px;"></div>
</body>
</html>

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

jquery判断是否包含在数组中 jQuery.inArray()

Continue Read..
var arr = [ "xml", "html", "css", "js" ];  
$.inArray("js", arr);  //返回 3,
如果不包含在数组中,则返回 -1;

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

js的replace方法(&nbsp;和-)

Continue Read..

1.将字符串中的&nbsp;全部替换为空字符串

var test="this &nbsp; is &nbsp; a test";
test=test.replace(/&nbsp;/ig, "");

alert(test);


2.将字符串-替换为空

<script>

var start = '11-11-21';

start = start.replace(/-/gm,'');

alert(start);

</script>

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权