用变量替换 JavaScript 中的函数

Replace function in JavaScript By variable

我需要用 Random 替换 $ 我该怎么做。 我想将此文本从 Some texte here some text here 转换为这样的 Som(gb5t2)e t(gb95f)ext(ze6f5)e h(bs3e2)ere (avFe3)so(gEC3e)me (aFE98)tex(8FZq2)t h(dq9aA)ere(cZ3cC).

function String() {
    var str =  "Some texte here some text here".replace(/(.{3})/g, "$");
    var mystring = str;
    var find = "$";
    var regex = new RegExp(find, "g");
    var fun = randomString();
    alert(mystring.replace(regex, fun));
    document.write(str);

    function randomString() {
        var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
        var string_length = 5;
        var randomstring = '';
        for (var i=0; i<string_length; i++) {
            var rnum = Math.floor(Math.random() * chars.length);
            randomstring += chars.substring(rnum,rnum+1);
        }
        document.randform.randomfield.value = " ( " + randomstring + " ) ";
    }
}

首先,您的函数 randomString() 没有 return 任何东西,所以乐趣总是一无是处。其次,您的查找正则表达式不起作用。

用这两个试试:

var find = '\$+';

function randomString() {
   var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
   var string_length = 5;
   var randomstring = '';

   for (var i=0; i<string_length; i++) {
       var rnum = Math.floor(Math.random() * chars.length);
       randomstring += chars.substring(rnum,rnum+1);
   }

   return randomstring;
}

我已经对您的代码进行了一些修改,现在应该可以使用了。

function String() {
var str =  "Some texte here some text here".replace(/(.{3})/g, function (x) 
{
return x + randomString();
});

document.write(str);

function randomString() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 5;
var randomstring = '';
for (var i=0; i<string_length; i++) {
    var rnum = Math.floor(Math.random() * chars.length);
    randomstring += chars.substring(rnum,rnum+1);
}
return " ( " + randomstring + " ) ";
}
}