javascript - 通过字符串使 Url 友好

标签 javascript

例如我有这个字符串:

make no@ sen# `se !

我会像这样生成 url

make-no-sen-se!

我有这个:

    var value = $('.titleVal').val();
    if (value != '') {
        value = value.replace(/[^a-z0-9 _-]/gi, '-').toLowerCase();

        value = value.split(' ');
        var result = '';

        for (var i = 0; i < value.length; i++) {
            if ((value.length - 1) == i) {
                result += value[i];
            } else {
                result += value[i] + '-';
            }
        }
        $('#vidUrl').val(result);
    }

但是它生成了这个:

make-no--sen---se--

最佳答案

使用+* 来表示一个集合的重复出现。

function process(value) {
    return value == undefined ? '' : value.replace(/[^a-z0-9_]+/gi, '-').replace(/^-|-$/g, '').toLowerCase();
}

var result = process($('.titleVal').val());
$('#vidUrl').val(result);

关于javascript - 通过字符串使 Url 友好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22329282/

相关文章:

javascript - 在 Reactjs 中滚动到底部时加载更多内容

javascript - 如果 div 类名匹配,则单击时显示/隐藏 div

javascript - 从子上下文中选择 d3 节点(例如计时器)

javascript - 如何在 Javascript 中解析 URL 查询参数?

javascript - 仍被拖动时可排序的索引位置

javascript - npm 持续全局安装

javascript - Angular .js : model update doesn't trigger view update

javascript - 在 JavaScript 数组中搜索对象

javascript - 当用户按值向上滚动时标题重新出现 (100px)

javascript - 迷你图的数据帧不平衡