用javascript替换两个字段中的特殊字符

时间:2012-09-20 21:12:39

标签: javascript jquery bind keyup

我有一个表单可以添加带有新闻标题的字段,并希望使用此字段添加到网址的标题。
我想在另一个字段中重写标题:

http://jsfiddle.net/atmoner/5sPZa/1/

但我会替换特殊字符(空格,审讯,感叹......) 即使它们应该以简单的方式书写,也不会打扰我,但我不知道如何

例:

new article,like this !

要:

new-article-like-this

3 个答案:

答案 0 :(得分:2)

你可以改变这个:

$("#label2").val(this.value);

到此:

var value = this.value;
value = value.replace(/[^a-zA-Z0-9]+/g, '-');  // special char(s) -> hyphen
value = value.replace(/^-|-$/g, ''); // remove leading/trailing hyphen
$("#label2").val(value);

答案 1 :(得分:1)

尝试以下代码..这只是一个起点..根据需要自定义。

$("#label1").bind("keyup", changed).bind("change", changed);

function changed() {
    $("#label2").val(this.value
         .replace(/\s|,/g, '_')       /* replace with _ */
         .replace(/!/g, ''));         /* simply remove */
}

DEMO: http://jsfiddle.net/5sPZa/3/

答案 2 :(得分:1)

根据你的jsfiddle,你应该用这种方式写changed函数:

function changed() {
    var v = this.value.replace(/\W+/g, '-')
        .replace(/-+$/, '')
        .replace(/^-+/, '');

    $("#label2").val(v);
}
​