Как заменить звездочку в Javascript с помощью replace ()?

используя JQuery, я извлекаю значение из того, что по существу является полем запроса для некоторых данных в базе данных MySQL. Зная, что большинство пользователей будут использовать " * "(звездочку) в качестве подстановочного значения и что MySQL использует символ"%", я хочу преобразовать любые звездочки в"%".

обычно это было бы так же просто, как использовать

queryString = inputText.replace('*', '%');

но у меня было мало успеха с этим. Javascript replace() функция заменяет только первое вхождение, поэтому она не заменяет последняя звездочка в чем-то вроде *Foo*

второй вариант, который я пробовал, использовал регулярное выражение, которое также не работало:

queryString = inputText.replace(/x2a/g, '%');

как я могу заменить " * "(звездочки) на " % " (знак процента)? Я бы предположил, что есть действительно простое регулярное выражение или что-то, что я упускаю из виду.

4 ответов


попробуй:

queryString = inputText.replace(/\*/g, '%');

разбиение строки на массив, а затем объединение ее обратно в строку быстрее, чем замены регулярных выражений:

queryString = inputText.split("*").join("%");

вы можете использовать:

queryString = inputText.replace(/[*]/g,"");

Я использую эту функцию, чтобы скрыть некоторые цифры телефонных номеров

function replacePhoneNumbers(number){
    var cuantos = number.length;
    var tele = [];
    for (var i = 0; i < cuantos; i++) {
        if(i < 7){
            tele[i] = number[i].replace(/^\d+$/, "*");
        }
        else{
            tele[i] = number[i];
        }
    }
    
    var full_phone = "";
    for (var i = 0; i < cuantos; i++) {
        full_phone += tele[i];
    }
    return full_phone;
    //return number;
}

var number = replacePhoneNumbers("7533930048");
document.getElementById("demo").innerHTML = number;
<p id="demo"></p>