javascript里面 如何比较中文字符串? 最近在做qt的一个小应用,利用webkit将自己写的js代码,在页面加载后注入并执行,目的就是提取该网页的发布时间,新闻出处等等,字符串是取到了,但是整个内容连在一起,做解析时,需要比较字符串的某些中文字段:如 if(Str.indexOf("我要评论")!=-1,我想提取部分内容,需要和常量中文字符串做下比较,这样总是返回-1,网上的一些方法都试了,还是不行,请各位大牛出出主意,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用charCodeAt 将字符串统一进行Unicode 编码之后再indexOf如何? 整个字符串是从一个div标签中提取的,中间有span进行分隔var inputs = document.getElementsByTagName("div");for(var i = 0; i < inputs.length; i ++){ if(inputs[i].getAttribute("class") == "info") { alert(ReplaceTags(inputs[i].innerHTML)); }}ReplaceTags去掉一些html标签,最后取出来是“2010年01月01日04:48东方早报我要评论(10)”这是在页面取得的数据,我在把它导入本地c++代码之前想做下解析,提取时间,新闻出处,回帖数(动态生成的),因为网页的标签或内容经常改变,我不想在本地程序里面解析,以免关联的太紧,我的js代码是一个配置文件,加载网页时,利用接口灌进去。每个网页的内容组织都不一样,所以js里面要做很多细节处理。这个字符串里,“我要评论”和“()”就是多余的元素,我要过滤掉它们。 比如字符串是str,你做alert(str.charAt(4))一定是显示“年”字,不过你拿这个和常量“年”字做“==”比较,结果一定是-1,所以拿中文常量字符串去做str.indexOf(“我要评论”),永远是-1。知道是编码方式的问题,找个几个转编码的函数,结果还是一样。请高手们给点意见 var a="你好啊";var b = a.indexOf("你好啊");alert(b); // 0 alert("2010年01月01日04:48东方早报我要评论(10)".charAt(4)=="年"); //outputs truealert("2010年01月01日04:48东方早报我要评论(10)".indexOf("东方")); //outputs 16我这没问题呀! 不是这样的啊,“2010年01月01日04:48东方早报我要评论(10)”是从页面标签中取出的innerHTML的内容而已,不是自己在js文件中定义的字符串常量,拿字符串常量去相互比较没有一点问题,而拿页面取出的字符串跟本地的常量字符串比就不行了,总是-1,把该js文件保存为UTF-8,unicode,gb2312编码都不行,晕啊 在asp中如何使用js创建内置组件的对象? jquery实现 收到新的消息后 排在最上面 fckeditor window.top.opener为空或不是对象 JS获取时间问题 按button1刷新,怎么能在页面table上还显示数据 一个异常奇怪的问题153变成了8482 ? 一个很古老的js问题! 请问在验证注册信息时,用JavaScript能实现限制次数吗? window.showModalDialog的问题,达人进! 求教:如何控制在模态窗口中不弹出新的页面!!! javascript网站期末作品 如何使用javascript打开一个加密的word和excel 文档?
for(var i = 0; i < inputs.length; i ++){
if(inputs[i].getAttribute("class") == "info")
{
alert(ReplaceTags(inputs[i].innerHTML));
}
}
ReplaceTags去掉一些html标签,最后取出来是“2010年01月01日04:48东方早报我要评论(10)”这是在页面取得的数据,我在把它导入本地c++代码之前想做下解析,提取时间,新闻出处,回帖数(动态生成的),因为网页的标签或内容经常改变,我不想在本地程序里面解析,以免关联的太紧,我的js代码是一个配置文件,加载网页时,利用接口灌进去。每个网页的内容组织都不一样,所以js里面要做很多细节处理。这个字符串里,“我要评论”和“()”就是多余的元素,我要过滤掉它们。 比如字符串是str,你做alert(str.charAt(4))一定是显示“年”字,不过你拿这个和常量“年”字做“==”比较,结果一定是-1,所以拿中文常量字符串去做str.indexOf(“我要评论”),永远是-1。知道是编码方式的问题,找个几个转编码的函数,结果还是一样。请高手们给点意见
alert("2010年01月01日04:48东方早报我要评论(10)".charAt(4)=="年"); //outputs true
alert("2010年01月01日04:48东方早报我要评论(10)".indexOf("东方")); //outputs 16我这没问题呀!