如何在javascript中复制文本

How copying text with replace in javascript

本文关键字:复制 文本 javascript      更新时间:2023-09-26

我已经完成了使用keyup复制文本的操作,但是当我添加替换功能时,复制不起作用,这是我的代码

<input id="name" type="text" name="name">
<input id="alias" type="text" name="alias">

JavaScript

$("#name").keyup(function(){
        var name = $('#name');
        var alias = $('#alias');
        alias.val(name.val());
 });

当我更改为

 $("#name").keyup(function(){
            var name = $('#name');
            var alias = $('#alias');
var copy = name.replace(" ", "-"); 
alias.val(copy.val());
     });

这什么也没给。

谢谢

所以你需要这样做。

$("#name").keyup(function(){
     var name = $('#name');
     var alias = $('#alias');
     var copy = name.val().replace(" ", "-"); 
     alias.val(copy);
 });

如果您只想处理空格:

var copy = name.val().replace(/ +/g, '-');

如果还想替换制表符和新行:

var copy = name.val().replace(/'s+/g, '-');

正如亚历杭德罗在我面前所说,但我要给出这个解决方案。

您正在调用name.replace(..) - 但请记住,namejQuery元素,而不是字段的值。

你想做

var copy = name.val().replace(' ', '-');
alias.val(copy);

另请注意,.replace(' ', '-')不会替换所有出现的-,只会替换第一个。您希望对要搜索的内容使用正则表达式

.replace(/'s/g, '-');

将用短划线替换所有出现的空格

下面的代码完美

$("#name").keyup(function(){
    var name = $('#name').val();
    var alias = $('#alias').val();
    var copy = name.split(' ').join('-')
    $('#alias').val(copy);
});

您缺少val()并且该字符串副本完全没有必要,因此此代码可以正常工作

$("#name").keyup(function(){
var name = $('#name');
var alias = $('#alias'); 
alias.val(name.val().replace(" ","-"));
});

我试过了,它对我来说效果很好。所以继续使用它.. :D