javascript - 连接正则表达式

标签 javascript jquery regex text replace

我有一个 JQuery 函数,它获取 URL 路径并将其添加为正文类:

var pathname = window.location.pathname;
var pathSlashesReplaced = pathname.replace(/\//g, " ");
var pathSlashesReplacedNoFirstDash = pathSlashesReplaced.replace(" ","");
var newClass = pathSlashesReplacedNoFirstDash.replace(/\(\d*\)/g, '').replace(/\s/, '-');

    $("body").addClass(newClass);
    if ( $("body").attr("class") == "") 
    {   

        $("body").addClass("class");

    }

.. 因此,如果 url 类似于/myapp/user/list,则主体类最终为:

<body class="myapp-user list">

问题是我希望所有三个词都带有破折号,所以它应该是:

<body class="myapp-user-list">

.. 然后我可以使用 CSS 来设置主题:

.myapp-user-list {

}

我很确定我的 RegEx 有问题,但我不知道问题出在哪里。我尝试了各种文本函数,但问题是它从页面中获取了所有文本并将其作为正文类放入:

var text = $(this).text();
var newClass  = $.trim(text.replace(/\(\d*\)/g, '').toLowerCase()).replace(/\s/, '-');

最佳答案

尝试:

var newClass = location.pathname.split('/').join('-').replace(/(^-|-$)/g,''),
    $body = $("body").addClass(newClass);

if ($body.attr("class") == "") {   
    $body.addClass("class");
}

我会避免类名 class。它可能会带来问题。

关于javascript - 连接正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694623/

相关文章:

javascript - 知道是否点击了 facebook 的按钮

java - 是否可以检测访问者 DNS 服务器?

regex - 如果在语句中找到单个单词,perl 正则表达式用于打印整个语句

php regex preg_match - 在第一个定界符后停止

javascript - 滚动我自己的工具提示,Firefox 抛出未捕获的异常

javascript 选择表格中的所有复选框

javascript - 我如何在三个js中迭代场景子项

javascript - 如何使 textarea 内容可以设置样式或设置 div 行为(如 textarea 行为)?

jquery - 使用 jquery/javascript 停止带有动画的函数

java - 在 Java 中查找正则表达式的第一个匹配项的索引