alert('z\z'==='zz');//true
Google了半天,只有一种解决方案,把z\z通过后台语言替换成z\\z 现在需求不允许这么做,要求直接在js里区分,编译器这样做是出于什么目的考虑?即便默认忽略也应该给出另一种可选择的途径吧!
解决方案 »
- opera 怎么屏蔽默认的altKey事件
- document.body.scrollLeft document.body.scrollTop是什么意思???
- ie7 <object ....>关闭窗口的activex 问题,请各位帮忙
- 这种方式链接js ff是不是不支持
- 怎么截图
- onresizeend事件我在msnd里面可以找到,为什么在页面上用的时候就无效呢?
- 文本筐記錄問題
- 如何让浏览器回到网页开头部分显示?
- 求助:一个表单中有多个input,数量不确定,怎么验证不为空,一次性提交后,怎么获取到值?
- electron如何加载动态html文件
- 100分求助,js点击按钮图片左右移动问题
- <if>怎么判断是否为空啊?
一,就是后台把这些符号编码一下,例如\编码成%5C或者你说变成\\
二,页面上弄一个隐藏div, 把你的字符串输出到div中,例如<div id="div1">z\z</div>,
然后获取div的innerHTML,不过这种方法不适合于用ajax请求回数据
<div id="div1"><%=str%></div>
js中判断document.getElementById("div1").innerHTML == "zz"
-----
当然自有道理,否则何必多此一举呢?主要是对其它一些常用但不方便直接表达的比如回车,TAB,版权符号,和<>等之类的符号提供一个转义表达,所以用\.....其实你已经知道这是转义符,这些应该懂.另外可选择的途径,初看是没有的.即使有其它方法,也会比较麻烦,涉及这样的问题,都是在后台里做,逆天而行可是....须小心啊,哈哈
看来暂时只能按第二种方案来解决这个问题。
软解析的时候的确会把未识别转义补全,为什么硬编码的时候不直接这样做呢?
总结一下:<textarea id="txt" style="display:none">z\z</textarea>
<script>
var s1='z\z',s2=document.getElementById('txt').value;alert(s1=='zz'); //true
alert(s1=='z\z'); //true
alert(s1=='z\\z'); //falsealert(s2=='zz'); //false
alert(s2=='z\z'); //false
alert(s2=='z\\z'); //true
</script>