如何使用CSS删除文本中的破折号?

如何使用CSS删除文本中的破折号?,css,text,Css,Text,在一个页面中,我会自动生成一些文本,如下所示: 爱德华霍珀大皇宫酒店 我想要的是删除破折号,用空格或带有CSS的空格来替换它。 可能吗 感谢您的帮助我不知道如何使用CSS,但使用Javascript您可以做到这一点 <script type="text/javascript"> function parseDisplay( result ) { var displayedText = true; for (var x = 0;

在一个页面中,我会自动生成一些文本,如下所示:

爱德华霍珀大皇宫酒店

我想要的是删除破折号,用空格或带有CSS的空格来替换它。 可能吗


感谢您的帮助

我不知道如何使用CSS,但使用Javascript您可以做到这一点

    <script type="text/javascript">
    function parseDisplay( result )
    {
        var displayedText = true;

        for (var x = 0; x < result.length; x++)
        {
            var c = result.charAt(x);

            if (c == '<')
            {
                displayedText = false;  
            }
            else if (c == '>')
            {
                displayedText = true;   
            }

            if (displayedText && c == '-')
            {   
                result = result.substring(0,x) + ' ' + result.substring(x + 1, result.length);
            }
        }

        return result;
    }
</script>

函数解析显示(结果)
{
var displayedText=true;
对于(var x=0;x
如果您将此结果用于ID或类,此函数将使“<>”标记内的所有内容完全保持不变!当您生成它时,只需在显示它之前通过此函数运行它

假设您有一个这样的标记:

<p id="text"> Edward-Hopper-Grand-Palais </p> 

这里的
/g
执行一个全局替换。

您不能用CSS做这样的事情。连字符不构成元素,因此不能在CSS中引用

从理论上讲,您可以创建一种用空格代替连字符的字体,并通过
@font-face
使用该字体。但这会很尴尬,连字符看起来就像空格(例如,复制内容并将其粘贴为纯文本会给你连字符,而不是空格)


因此,您需要按照其他答案中的建议修改内容服务器端或客户端。

您必须使用DOM操作。为什么要让事情变得如此复杂?我需要使用此函数在显示的html上用空格替换破折号,但我不希望它更改我div的ID和类,因此,我将所有AJAX结果都传递给了它。它实际上只是一个具有附加功能的字符串替换函数。这是一个非常简单的函数。displayedText变量跟踪用户是否会看到字符串的这一部分,如果用户看到它并包含下划线,我会通过抓住该点之前的字符串、空格和该点之后的字符串将其替换为空格。我知道了,但是如果我们已经知道特定的“id”或“class”呢这将生成连字符文本,然后我们只需3行代码就可以实现我们想要的。但我想你正在考虑我们没有的情况。是的,我需要传递的文本是批量生成的产品信息,我使用数据库中的产品编号和类别来定义我的类,所以我需要使用连字符文本,但当我显示信息时,我希望它显示出来,而不带连字符的产品名称和类别。不过,你的答案可能更接近他想要的!这是一个可靠的回答:)谢谢你,阿里,但对我来说,它不起作用。我想这是因为我的文本是由一个变量生成的:{$product.category}这就是我为什么要寻找CSS解决方案的原因……为什么不分享你的完整代码以及文本是如何生成的,这样我们就不必猜测情况的准确性了。我认为您可以使用DOM来操作“sstiret”中的HTML。共享您的完整代码及其附带的工作流程。
var str = document.getElementById("text").innerHTML;
str = str.replace(/-/g, ' ');
alert(str);