HTML中字符串的隐形分隔符

noa*_*oah 54 html non-printing-characters

我需要一种方法来识别HTML标记中的某些字符串.我知道字符串是什么,但它们可能是文档中其他字符串的子字符串.为了找到它们,我输出一个特殊的分隔符(当前正在使用\032).在页面加载时,我们浏览HTML并记录字符串的位置,并删除分隔符.

不幸的是,大多数浏览器都会显示分隔符,直到我们可以找到并删除所有分隔符.如果可能的话,我想避免这种情况.是否有一个字符或字符串将保留在HTML内容中(因此注释不起作用)但对用户不可见?它也需要是一个不太可能出现在字符串旁边的东西,所以类似的东西 也不起作用.

编辑:对不起,我忘了提到字符串将属于属性,所以任何类型的标签都不会工作.

Ano*_*non 140

‌- 零宽度非连接器(请参阅http://htmlhelp.org/reference/html40/entities/special.html)

如果这已经出现在您的文本中,请加倍(例如: ‌‌mytext‌‌


编辑以响应评论:适用于Firefox 3.请注意,您必须搜索实体的Unicode值.

<html>
<body>
    <div id="test">
        This is a &zwnj;test
    </div>

    <script type="application/javascript">
        var myDiv = document.getElementById("test");
        var content = myDiv.innerHTML;
        var pos = content.indexOf("\u200C");
        alert(pos);
    </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


amp*_*ine 5

您可以将它们插入<span>元素中.这仅适用于页内文本(不是属性等).

否则,你可以插入一个空格字符,你的程序没有输出作为HTML的一部分,如制表符(\x09),垂直制表符(\x0b),裸回车(\x0d) - 旁边没有换行符,ala Windows文本编码 - 或者,只是一个空字节(\x00).