<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>String的属性和方法</title>
    <link rel="stylesheet" href="">
    <script>

    </script>
</head>
<body>
    Strin定义字符串有两种方法
    1.使用new语句通过调用字符串对象的构造函数定义一个字符串对象
    2.使用var语句定义一个字符串变量,而这个字符串变量可以直接使用字符串的方法个属性
    String对象的属性和方法
    String属性有三个:length,constructor,prototype
    <code>
        var s=0;
        var newString=new String("teacher");
        var s=newString.length;
        alert(s.toString(16));
    </code>
    <code>
        var newName=new String("Hello");
        if(newName.constructor==String);{
        alert("It is a String");
        }
    </code>    
    <code>
        function employee(name,age){
        this.name=name;
        this.age=age;
        }
        var info=new employee("kate",35);
        employee.prototype.saylary(null);
        info.salary=600;
        alert(info.salary);
    </code>
    
</body>
</html>


html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Language" content="zh-CN">
<title>jquery右侧固定数字显示隐藏导航菜单</title>
<script type="text/javascript" src="js/jquery.js"></script>
<link href="css/default.css" rel="stylesheet" type="text/css">
</head>
<body style="height:600px;">
<div id="header">
  <div id="top">
    <div id="warp">
      <div class="topleft fl">

      </div>
      <div class="topright fr"><a href="/">返回首页</a></div>
    </div>
  </div>
</div>
<!-- 左侧导航 -->
<div class="leftNav">
    <a href="#" style="left: -110px;">站长素材<em>0</em></a>
    <a href="#" style="left: -110px;">书签切换<em>1</em></a>
    <a href="#" style="left: -110px;">幻灯片<em>2</em></a>
    <a href="#" style="left: -110px;">图片滚动-左<em>3</em></a>
    <a href="#" style="left: -110px;">图片滚动-上<em>4</em></a>
    <a href="#" style="left: -110px;">图片无缝滚动-左<em>5</em></a>
    <a href="#" style="left: -110px;">图片无缝滚动-上<em>6</em></a>
    <a href="#" style="left: -110px;">文字滚动-左<em>7</em></a>
    <a href="#" style="left: -110px;">文字滚动-上<em>8</em></a>
    <a href="#" style="left: -110px;">文字无缝滚动-左<em>9</em></a>
    <a href="#" style="left: -110px;">文字无缝滚动-上<em>10</em></a>
    <a href="#" style="left: -110px;">其它基础效果<em>11</em></a>
</div>
<script type="text/javascript">
    var btb=$(".leftNav");
    var tempS;
    $(".leftNav").hover(function(){
            var thisObj = $(this);
            tempS = setTimeout(function(){
            thisObj.find("a").each(function(i){
                var tA=$(this);
                setTimeout(function(){ tA.animate({left:"0"},300);},50*i);
            });
        },200);

    },function(){
        if(tempS){ clearTimeout(tempS); }
        $(this).find("a").each(function(i){
            var tA=$(this);
            setTimeout(function(){ tA.animate({left:"-110"},300,function(){
            });},50*i);
        });

    });
    var isIE6 = !!window.ActiveXObject&&!window.XMLHttpRequest;
    if( isIE6 ){ $(window).scroll(function(){ btb.css("top", $(document).scrollTop()+100) }); }
</script>
<!-- 右侧导航 -->
<div class="rightNav">
    <a href="#" style="right: -110px;"><em>0</em>站长素材</a>
    <a href="#" style="right: -110px;"><em>1</em>书签切换</a>
    <a href="#" style="right: -110px;"><em>2</em>幻灯片</a>
    <a href="#" style="right: -110px;"><em>3</em>图片滚动-左</a>
    <a href="#" style="right: -110px;"><em>4</em>图片滚动-上</a>
    <a href="#" style="right: -110px;"><em>5</em>图片无缝滚动-左</a>
    <a href="#" style="right: -110px;"><em>6</em>图片无缝滚动-上</a>
    <a href="#" style="right: -110px;"><em>7</em>文字滚动-左</a>
    <a href="#" style="right: -110px;"><em>8</em>文字滚动-上</a>
    <a href="#" style="right: -110px;"><em>9</em>文字无缝滚动-左</a>
    <a href="#" style="right: -110px;"><em>10</em>文字无缝滚动-上</a>
    <a href="#" style="right: -110px;"><em>11</em>其它基础效果</a>
</div>
<script type="text/javascript">
    var btb=$(".rightNav");
    var tempS;
    $(".rightNav").hover(function(){
            var thisObj = $(this);
            tempS = setTimeout(function(){
            thisObj.find("a").each(function(i){
                var tA=$(this);
                setTimeout(function(){ tA.animate({right:"0"},300);},50*i);
            });
        },200);

    },function(){
        if(tempS){ clearTimeout(tempS); }
        $(this).find("a").each(function(i){
            var tA=$(this);
            setTimeout(function(){ tA.animate({right:"-110"},300,function(){
            });},50*i);
        });

    });
    var isIE6 = !!window.ActiveXObject&&!window.XMLHttpRequest;
    if( isIE6 ){ $(window).scroll(function(){ btb.css("top", $(document).scrollTop()+100) }); }
</script>
</body>
</html>

CSS

@charset "utf-8";
/* CSS Document */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,
form,fieldset,input,textarea,p,blockquote,th,td,img { padding: 0; margin: 0; }
fieldset,img { border: 0; }
address,caption,cite,code,dfn,em,strong,th,var,i { font-weight: normal; font-style: normal; }
ol,ul,li { list-style: none; }
caption,th { text-align: left; }
h1,h2,h3,h4,h5,h6 { font-weight: normal; font-size: 100%; }
q:before,q:after { content:''; }
abbr,acronym { border: 0; }
/*-- All --*/
body{ color:#333;font:12px/20px Arial,"Microsoft YaHei","宋体",sans-serif; text-align:center; background:#DCDCDC; }
a{ color:#333; text-decoration:none; outline:none;}
a:hover {color:#f00; text-decoration:underline; }
table { border-collapse: collapse; border-spacing: 0; empty-cells:show; }
table td,table th{ border:#ddd solid 1px; padding:5px 10px; }
table th{ background:#176D97; color:#fff;  }
table .new td{ color:#f60; font-weight:bold;  }
/*-- 左侧导航 --*/
.leftNav{ position:fixed; width:140px;  left:0; top:100px; _position:absolute; text-align:left; cursor:pointer; background-image:url(about:blank);  }
.leftNav a{ display:block; position:relative; height:30px; line-height:30px; margin-bottom:2px; background:#fff; padding-left:10px; width:130px; overflow:hidden;  cursor:pointer; left:-110px; }
.leftNav a:hover{ text-decoration:none; color:#1974A1;  }
.leftNav a:hover em{ background:#00b700}
.leftNav a em{ display:block; float:right; width:30px; background:#1974A1; color:#fff; font-size:16px; text-align:center; margin-left:10px;}

/*-- 右侧导航 --*/
.rightNav{ position:fixed; width:140px;  right:0; top:100px; _position:absolute; text-align:left; cursor:pointer; background-image:url(about:blank);  }
.rightNav a{ display:block; position:relative; height:30px; line-height:30px; margin-bottom:2px; background:#fff; padding-right:10px; width:130px; overflow:hidden;  cursor:pointer; right:-110px; }
.rightNav a:hover{ text-decoration:none; color:#1974A1;  }
.rightNav a:hover em{ background:#00b700}
.rightNav a em{ display:block; float:left; width:30px; background:#1974A1; color:#fff; font-size:16px; text-align:center; margin-right:10px;}

JS

<script src="//cdn.bootcss.com/jquery/2.2.1/jquery.min.js"></script>

String对象的方法

方法名说明
anchor()为字符串对象中的内容两边加上HTML的<a></a>标记对
big()为字符串对象中的内容两边加上HTML的<big></big>标记对
bold()为字符串对象中的内容两边加上HTML的<b></b>标记对
fontcolor()为字符串对象中的内容两边加上HTML的<font></font>标记对,并设置color属性
charAt()返回字符串对象中的指定位置处的字符
charCodeAt()返回一个整数,该整数表示字符串中对象中指定位置处的字符的Unicode属性
indexOf()返回某个子字符串对象中第一次出现的字符位置
lastIndexOf()作用与indexOf()相似,但搜索方向为从右到左
match()使用正则表达式模式对字符串进行搜索,并返回一个包含该搜索结果的数组
replace()使用正则表达式模式对字符串进行搜索,并对搜索到的内容用指定的字符串替换
search()返回使用正则表达式模式搜索时,第一匹配的子字符串在整个被搜索的字符中的位置
slice()返回在一个字符串的两个指定位置之间的子字符串
split()返回一个字符串按某种分隔标记符拆分为若干子字符串时所产生的字符串数组
substr()返回从指定位置开始,取出具有指定长度个数的字符所组成的字符串
substring()返回从一个位置开始,到另外一个结束位置的所有字符所组成的字符串
toLowerCase()返回一个字符串,该字符串中的所有字母转换为小写字母
toUpperCase()返回一个字符串,该字符串中的所有字母转换为大写字母
valueOf()返回某个字符串对象的原始值

用于获取日期指定部分的方法

获取部分方法名说明
获取年份信息getFullYear()获取日期对象中的年份信息,使用本地时,以4位数表示
getUTCFullYear()使用UTC小时,以4位数表示
getYear()使用本地时,如果年份小于2000则以2位数表示,如果大于2000则以4位数表示。建议使用getFullYear()为佳
月份getMonth()使用本地时,返回0-11之间的整数
getUTCmonth()使用UTC月
天数getDate()使用本地时,返回0-31之间的整数
getUTCDate()使用UTC天
星期getDay()星期几的信息,使用本地时,返回0-6之间的整数
getUTCDay()使用UTC星期几
小时getHours()返回0-23之间的整数
getUTCHours()使用UTC小时
分钟getMinutes()返回0-59之间的整数
getUTCMinutes()使用UTC分钟
秒钟getSeconds()返回0-59之间的整数
getUTCSeconds()使用UTC秒钟
毫秒getMiliseconds()返回0-999之间的整数
getMiliseconds()使用UTC毫秒
时间差getTime()获取日期对象所代表额度时间与1970年1月1日0时之间的毫秒数差
getTimezoneOffset()获取日期所代表的时间与UTC小时之间的时差数,以分钟为单位

用于设置日期指定部分的方法

设置部分方法名说明
设置年份setFullYear(year[,month,day])设置日期对象中的年份信息,使用本地时
setUTCFullYear(year[,month,day])使用UTC小时
setYear(year)使用本地时,如果年份小于2000则以2位数表示
月份getMonth(month[,day])使用本地时
getUTCMonth(month[,day]使用UTC月
天数setDate(day)本地时
setUTCDate(day)UTC天
小时setHours(hours[,minutes,seconds,miliseconds])本地时
setUTCHours(hours[,minutes,seconds,miliseconds])UTC时
分钟setMinutes(minutes[,seconds,miliseconds])本地时
setUTCMinutes(minutes[,seconds,miliseconds])UTC时
setSeconds(seconds[,miliseconds])本地时
setUTCSeconds(seconds[,miliseconds])UTC时
毫秒setMiliSeconds(miliseconds)本地时
setUTCMiliSeconds(miliseconds)UTC时
通过毫秒设置时间setTime(miliseconds)通过距离1970年1月1日0时多少毫秒方式设置时间

将日期对象转移为字符串的方法

方法名说明
toDateString()将当前Date对象中的日期转换为字符串,返回格式为“星期 月份 天数 年份”
toTimeString()将当前Date对象中的日期转换为字符串
toUTCString()将当前Date对象转换以UTC时间表示的字符串
toGMTString()将当前Date对象转换以GMT时间表示的字符串
toLocalString()将当前Date对象转换以本地时间表示的字符串
toLocalDateString()将当前Date对象转换以本地时间表示的日期字符串
toLocalTimeString()将当前Date对象转换以本地时间表示的时间字符串
toString()将当前Date对象转换为字符串的形式表示

在网上找了很多、如果根据网络提供的API直接JS Ajax查询会出问题:拒绝访问
网上说是跨域了、解决办法就是java后台访问这个API地址。下面罗列一些网络上的API地址。

淘宝网

API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443
参数:
tel:手机号码
返回:JSON

拍拍

API地址: http://virtual.paipai.com/extinfo/GetMobileProductInfo?mobile=15850781443&amount=10000&callname=getPhoneNumInfoExtCallback
参数:
mobile:手机号码
callname:回调函数
amount:未知(必须)
返回:JSON

财付通

API地址: http://life.tenpay.com/cgi-bin/mobile/MobileQueryAttribution.cgi?chgmobile=15850781443
参数:
chgmobile:手机号码
返回:xml

百付宝

API地址: https://www.baifubao.com/callback?cmd=1059&callback=phone&phone=15850781443
参数:
phone:手机号码
callback:回调函数
cmd:未知(必须)
返回:JSON

115

API地址: http://cz.115.com/?ct=index&ac=get_mobile_local&callback=jsonp1333962541001&mobile=15850781443
参数:
mobile:手机号码
callback:回调函数
返回:JSON

有道

API地址: http://www.youdao.com/smartresult-xml/search.s?jsFlag=true&type=mobile&q=13985046628
参数:
type:mobile(表示查询手机号码)
q:手机号码
返回:JSON

这里用的是有道的API、下面是代码:

页面代码:

function findPhoneAddres(){   
                   var mobile = $("#usermobil").val();     
                   var urlAction = "<%=path %>/customermanage/listcustomerinfo!findPhoneAddres.action";   
                   $.get(urlAction, {phoneStr:mobile}, function (data){   
                        if(data==''||data==null){   
                            alertMsg.info("找不到您输入的手机号码归属地!");       
                        }else{   
                            var json = eval("("+data+")");       
                            var phoneStr = json.location ;   
                            $("#userAddres").val(phoneStr.split(" ")[1]);    
                            $("#userAddresByPhone").val(phoneStr.split(" ")[1]);       
                            $("#userAddresLabel").html("手机号归属地:"+phoneStr.split(" ")[1])   
                        }     
                    });        
}

后台Action方法:

 /*  
 * 手机号码归属地查询地址  
 */   
private final String urlAddres = "http://www.youdao.com/smartresult-xml/search.s?" +   
                                 "jsFlag=true&type=mobile&q=";   
  /**  
 * 查询手机号码归属地  
 * @return  
 * @throws Exception  
 */   
public String findPhoneAddres() throws Exception{   
    String phone = request.getParameter("phoneStr");   
    String url = urlAddres+phone;       
    String result = ActionURL.callUrlByGet(url, "GBK");     
    request.setCharacterEncoding("UTF-8");   
    response.setContentType("text/html;charset=UTF-8");   
    PrintWriter out = response.getWriter();     
    out.print(result);     
    out.close();        
    return null;   
}

ActionURL静态类的callUrlByGet方法:

public static String callUrlByGet(String callurl,String charset){     
        String result = "";     
        try {     
            URL url = new URL(callurl);     
            URLConnection connection = url.openConnection();     
            connection.connect();     
            BufferedReader reader = new BufferedReader(new    
                    InputStreamReader(connection.getInputStream(),charset));     
            String line;     
            while((line = reader.readLine())!= null){      
                result += line;     
                result += "\n";     
            }     
        } catch (Exception e) {     
            e.printStackTrace();     
            return "";     
        }     
        if(result!=null&&!"".equals(result)){   
            result = result.substring(result.indexOf("{" +   
            ""), (result.indexOf("}")+1) );     
        }    
        return result;       
    }

Test测试方法:

public static void main(String[] args) {   
        String url = "http://www.youdao.com/smartresult-xml/search.s?" +   
                     "jsFlag=true&type=mobile&q=13985046628";   
        String result = callUrlByGet(url,"GBK");   
        System.out.println(result);      
    }

输出的结果:
{'product':'mobile','phonenum':'13985046628','location':'贵州 贵阳'}

出自http://hzw2312.blog.51cto.com/2590340/936166

相关https://m69w.com/247.html





VeryNginx的GitHub地址: https://github.com/alexazhou/VeryNginx

VeryNginx 基于 lua_nginx_module(openrestry) 开发,实现了高级的防火墙、访问统计和其他的一些功能。 强化了 Nginx 本身的功能,并提供了友好的 Web 交互界面。

VeryNginx在线演示地址: http://alexazhou.xyz/vn/index.html

用户名 / 密码: verynginx / verynginx
下面的安装教程是基于CentOS 6 64位系统进行的

安装依赖

yum install -y gcc gcc-c++ make cmake autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel libaio readline-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel libxslt-devel libicu-devel libevent-devel libtool libtool-ltdl bison gd-devel vim-enhanced pcre-devel zip unzip ntpdate sysstat patch bc expect rsync git lsof lrzsz

进入/tmp目录

cd /tmp/

下载OpenResty

wget https://openresty.org/download/ngx_openresty-1.9.7.1.tar.gz

解压OpenResty

tar -xvzf ngx_openresty-1.9.7.1.tar.gz

进入OpenResty源代码目录

cd ngx_openresty-1.9.7.1

配置configure及变量信息

./configure --prefix=/usr/local/openresty --user=nginx --group=nginx --with-http_stub_status_module --with-luajit

编译安装OpenResty

gmake && gmake install

退回到/tmp目录中

cd ..

克隆VeryNginx

git clone https://github.com/alexazhou/VeryNginx.git

删除OpenResty中的nginx.conf默认配置文件

rm -rf /usr/local/openresty/nginx/conf/nginx.conf

下载VeryNginx的nginx.conf配置文件

wget https://dl.m69w.com/scripts/nginx.conf -O /usr/local/openresty/nginx/conf/nginx.conf

复制VeryNginx到OpenResty中

cp -r ~/VeryNginx/VeryNginx /usr/local/openresty/VeryNginx

修改/usr/local/openresty/目录的所有者为nginx用户

chown -R nginx:nginx /usr/local/openresty/

启动VeryNginx

/usr/local/openresty/nginx/sbin/nginx

打开浏览器访问 http://你的服务器IP/VeryNginx/index.html
默认用户名和密码是 verynginx / verynginx
登录之后就可以查看状态,并对配置进行修改了。修改配置后,记得到 「Config > System > All Configuration」去保存.
如果需要详细的配置说明,请查看 VeryNginx Wiki

相关:
https://github.com/jgmdev/ddos-deflate说明
Linux被DDOS&CC攻击解决实例
通过nginx配置文件抵御攻击
防CC的收集以及实现基于js的CC攻击


原本想說要用Dropbox 來備份,但是卻找不到可以單獨設定同步其中一個目錄的設定,後來想到mega有免費50G可以使用,備份使用者文件或是一周的資料庫備份檔案都夠用了。

官方網站: http://megatools.megous.com/
https://github.com/megous/megatools
Centos为例,安裝方法

yum -y install gcc make glib2-devel libcurl-devel openssl-devel gmp-devel tar

wget http://megatools.megous.com/builds/megatools-1.9.95.tar.gz
tar -xzvf megatools-1.9.95.tar.gz

./configure

make

make install

make clean

在使用者要同步的跟目錄建立 .megarc 檔案,內容如下

[Login]
Username = Mega的帳號
Password = Mega的密碼

接下來有很多功能可以試試看

megadl 從 mega下載檔案
megals 列出 mega 遠端目錄清單
megaput 傳送檔案到 mega
megaget 下載檔案到 mega

我最想要使用的就是同步 -r 代表遠端目錄 -l 代表本地端目錄
/usr/local/bin/megacopy -r /Root -l /backup
這樣就可以自動雙向同步檔案到mega空間了

相关
http://pkgs.org/download/megatools
Installing megatools Package on 14.04
https://megatools.megous.com/builds/
installing up-to-date glib
CentOS下升级Glib
CENTOS 6.7 - configure: error: Glib 2.32.0 or later is required to build megatools



来自:一段JS代码让Markdown自动生成目录

实现方法

页面结构

//放入在文章页内容前面
<div class="BlogAnchor">
    <p>
        <b id="AnchorContentToggle" title="收起" style="cursor:pointer;">目录[-]</b>
    </p>
    <div class="AnchorContent" id="AnchorContent"> </div>
</div>

Js代码

//在文章中查找title并填充到div AnchorContent中
$(".post-content").find("h2,h3,h4,h5,h6").each(function(i,item){
    var tag = $(item).get(0).localName;
    $(item).attr("id","wow"+i);
    $("#AnchorContent").append('<li><a class="new'+tag+' anchor-link" onclick="return false;" href="#" link="#wow'+i+'">'+(i+1)+" · "+$(this).text()+'</a></li>');
    $(".newh2").css("margin-left",0);
    $(".newh3").css("margin-left",20);
    $(".newh4").css("margin-left",40);
    $(".newh5").css("margin-left",60);
    $(".newh6").css("margin-left",80);
});
$("#AnchorContentToggle").click(function(){
    var text = $(this).html();
    if(text=="目录[-]"){
        $(this).html("目录[+]");
        $(this).attr({"title":"展开"});
    }else{
        $(this).html("目录[-]");
        $(this).attr({"title":"收起"});
    }
    $("#AnchorContent").toggle();
});

CSS代码

/*导航*/
.BlogAnchor {
    background: #f4f7f9;
    padding: 10px;
    line-height: 180%;
}
.BlogAnchor p {
    font-size: 18px;
    color: #15a230;
    margin-bottom: 0.3em;
}
.BlogAnchor .AnchorContent {
    padding: 5px 0px;
}
.BlogAnchor li{
    text-indent: 20px;
    font-size: 14px;
}
#AnchorContentToggle {
    font-size: 13px;
    font-weight: normal;
    color: #FFF;
    display: inline-block;
    line-height: 20px;
    background: #5cc26f;
    font-style: normal;
    padding: 1px 8px;
    margin-right: 10px;
}
.BlogAnchor a:hover {
    color: #5cc26f;
}
.BlogAnchor a {
    text-decoration: none;
}

导航扩展

同时也可以实现锚点之间的平滑滚动,使用jquery animate

$(".anchor-link").click(function(){
    $("html,body").animate({scrollTop: $($(this).attr("link")).offset().top}, 1000);
});

结束



99% 的网站都“被中招” - 有史以来最被低估的漏洞& 讨论

新版(1.1)没有此目录/var/CommonMark

加粗文字还是改源码,有些主题是支持新窗口打开的,但是有些就没有
还是动源码吧,一劳永逸

文章内链接新窗口打开并添加nofollow

来自Typecho使用贴士: Markdown文章内链接从新窗口打开
/var/MarkdownExtraExtended.php2321行

$result = "<a href=\"$url\"";

改为

$result = "<a rel=\"external nofollow\" target=\"_blank\" href=\"$url\"";

评论新打开窗口

来自Typecho博客评论中网址在新窗口打开
/var/Widget/Abstract/Comments.php376行

rel="external nofollow"' : NULL) , '>' , $this->author , '</a>';

改为

rel="external nofollow"' : NULL) , 'target="_blank">' , $this->author , '</a>';

这里要说明一下,这个站点是不要搜索收录的,所以就加了rel="external nofollow"
注重SEO那些的可以不要,可删掉

以上方法有个弊端就是是直接改源码的,升级可能就没了

阅读全文