小弟菜鸟,最近写段点JS程序遇到点问题,就是查判断搜索引擎来路和搜索关键字
如:var s=document.referrer
if ((s.indexOf("google")>0 || s.indexOf("baidu")>0 ||s.indexOf("sogou")>0 ||s.indexOf("soso")>0 || s.indexOf("yahoo")>0 )
.....
上面判断英文字串没问题如何判断汉字呢?
谢谢。

解决方案 »

  1.   

    用北京两个字的unicode编码
    s.indexOf('\u5317\u4eac') > 0
      

  2.   

    我试了不行比如我在百度中搜索"电视"
    编码是这们的:
    http://www.baidu.com/s?wd=%E7%94%B5%E8%A7%86&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&inputT=1893
      

  3.   

    var a="http://www.baidu.com/s?wd=%E7%94%B5%E8%A7%86&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&inputT=1893";
    var reg=/\w+=(%\w{2})+/;
    alert(reg.test(a));
    这样试试 如果不能被ascii码表示的话貌似会用%后加两个16进制的数表示  判断有没有这样的东西看看行不行
      

  4.   

    你可以这样
    url = "http://www.baidu.com/s?wd=%E7%94%B5%E8%A7%86&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&inputT=1893"
    a = decodeURIComponent(url)
    var reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/;
    alert(reg.test(a))
      

  5.   


    如果要支持url地址中的汉字,远比想象中的要复杂。首先要确定发出这个url的页面的编码,
    utf-8,gb2312,big5不同编码下,同一个汉字会呈现出不同的数字,
    这些数字再转换为16进制,就会出现url中%后面的内容。这远不是 decodeURIComponent 能解决的。解决办法也不是没有,非常复杂。
    总的来说,要转换编码到 unicode.