Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用javascript替换两个字段中的特殊字符_Javascript_Jquery_Bind_Keyup - Fatal编程技术网

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

用javascript替换两个字段中的特殊字符,javascript,jquery,bind,keyup,Javascript,Jquery,Bind,Keyup,我有一个表单可以添加一个带有新闻标题的字段,并希望使用此字段添加到url的标题。 我想在另一个类似这样的领域重写标题live: 但我会替换特殊字符(空格、问号、感叹号……) 即使他们应该写在平原,这并不困扰我,但我不明白如何 例如: new article,like this ! 致: 请尝试下面的代码。。这只是一个起点。。根据需要定制 $("#label1").bind("keyup", changed).bind("change", changed); function changed

我有一个表单可以添加一个带有新闻标题的字段,并希望使用此字段添加到url的标题。
我想在另一个类似这样的领域重写标题live:

但我会替换特殊字符(空格、问号、感叹号……)
即使他们应该写在平原,这并不困扰我,但我不明白如何

例如:

new article,like this !
致:


请尝试下面的代码。。这只是一个起点。。根据需要定制

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

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

演示:

尝试下面的代码。。这只是一个起点。。根据需要定制

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

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

您可以更改以下内容:

$("#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);
您可以更改此设置:

$("#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);

根据您的JSFIDLE,您应该以以下方式编写
changed
函数:

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

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

根据您的JSFIDLE,您应该以以下方式编写
changed
函数:

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

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