Как заменить звездочку в Javascript, используя replace ()? - PullRequest
12 голосов
/ 02 октября 2009

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

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

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

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

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

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

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

Ответы [ 4 ]

25 голосов
/ 02 октября 2009

Попробуйте:

queryString = inputText.replace(/\*/g, '%');
4 голосов
/ 02 октября 2009

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

queryString = inputText.split("*").join("%");
0 голосов
/ 18 сентября 2017

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

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>
0 голосов
/ 05 июля 2012

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

queryString = inputText.replace(/[*]/g,"");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...