Как заменить звездочку в Javascript с помощью replace ()?
используя JQuery, я извлекаю значение из того, что по существу является полем запроса для некоторых данных в базе данных MySQL. Зная, что большинство пользователей будут использовать " * "(звездочку) в качестве подстановочного значения и что MySQL использует символ"%", я хочу преобразовать любые звездочки в"%".
обычно это было бы так же просто, как использовать
queryString = inputText.replace('*', '%');
но у меня было мало успеха с этим. Javascript replace()
функция заменяет только первое вхождение, поэтому она не заменяет последняя звездочка в чем-то вроде *Foo*
второй вариант, который я пробовал, использовал регулярное выражение, которое также не работало:
queryString = inputText.replace(/x2a/g, '%');
как я могу заменить " * "(звездочки) на " % " (знак процента)? Я бы предположил, что есть действительно простое регулярное выражение или что-то, что я упускаю из виду.
4 ответов
разбиение строки на массив, а затем объединение ее обратно в строку быстрее, чем замены регулярных выражений:
queryString = inputText.split("*").join("%");
Я использую эту функцию, чтобы скрыть некоторые цифры телефонных номеров
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>