Я хочу удалить некоторые символы или текст на моем выходе. Как я могу это сделать? У меня есть это значение:
<?php
if (isset($_POST['btnSubcode']))
{
$lblCode = isset($_POST['lblQrTxt']) ? $_POST['lblQrTxt'] : '';
}
?>
<input type = "text" id = "card-code" value='<?php echo $lblCode ?>' class = "form-control">
Его значение:
QR Code: 444444444|123
Я хочу удалить QR Code: и | 123. Есть ли какое-нибудь решение для этого?
Вы можете использовать регулярное выражение. Синтаксис сильно различается в зависимости от того, хотите ли вы сделать это в PHP или JS. Я бы предложил PHP.
@RoryMcCrossan, привет, сэр, не могли бы вы помочь мне с этим? я не знаком с regex, мне тяжело с ним, спасибо
См. этот вопрос. Вы также можете потенциально использовать substr(), если требуемые индексы строки постоянны.
@executable привет, я думаю, что это не сработает, потому что я думаю, что preg_match() работает только для СТАТИЧЕСКИХ или ФИКСИРОВАННЫХ писем
Что вы подразумеваете под фиксированный или статический?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Взорвите строку дважды: один раз, чтобы избавиться от текста QR-кода, и один раз, чтобы получить фактический код, т. е.: перед каналом (|)
<?php
if (isset($_POST['btnSubcode']))
{
$lblCodeTotal = isset($_POST['lblQrTxt']) ? $_POST['lblQrTxt'] : '';
$lblCodePortions1 = explode("QR Code: ", $lblCodeTotal); // gives 444444444|123
$lblCodePortions2 = explode("|", $lblCodePortions1[1]); // gives 444444444
$lblCode = $lblCodePortions2[0];
}
?>
Это только потому, что это фрагмент JS, пытающийся запустить код PHP.
предполагая, что вход всегда имеет одну и ту же структуру, QR Code: value|value, вы можете использовать функцию explodeссылка на сайт
$code = "QR Code: 444444444|123";
$code = explode(":",$code); // code = array("QR Code","444444444|123")
$code = explode("|",$code[1]); // code[1] = "444444444|123"
$code1 = trim($code[0]) // 444444444
$code2 = trim($code[1]) // 123
эй, это может быть ответом, но что, если я хочу, чтобы показывался только 123 ??
iv'e отредактируйте мой ответ для вашего комментария, взорвите, верните массив в первом элементе, который будет левой стороной, а во втором элементе будет правой стороной строки вокруг разделителя взрыва (см. документы php.net/manual/en/function.explode.php)
Вы можете попробовать это
$ourput = rtrim(ltrim($lblCode, 'QR Code:'), '|123') ;
отлично работает!! но номер 123 все еще там
как мы можем удалить 123, сэр?
попробуй сейчас пожалуйста, я забыл про 123
у меня есть еще одна проблема, сэр, что, если вывод изменится на 12343594 :( есть ли какое-нибудь решение?
Нет проблем, ваш вывод будет работать нормально, если следующая строка не изменит 'QR Code:' и '|123'
Вы можете добавить этот JavaScript после кода PHP:
document.getElementById("card-code").value = document.getElementById("card-code").value.split("QR Code: ")[0].split("|123")[0];
Эй приятель !! пожалуйста, помогите мне, как я могу поместить это в свой тип ввода = текст, пожалуйста, это ответ, который мне нужен
Вы можете использовать функцию «substr(string,start,length)», чтобы найти начальную и конечную точки для самой строки.
<?php
$mystring = "QR Code: 444444444|123";
$mystring = substr($mystring, strpos($mystring, ':') +1);
$mystring = substr($mystring, 0, strpos($mystring, '|'));
echo $mystring;
?>
Попробуйте это, он сначала удаляет QR-код, а затем разделяет их с помощью «взорвать» с помощью | как разделитель
$output = explode(ltrim($lblCode, 'QR Code:'), '|')[0] ;
Вероятно, используется
preg_match()php.net/manual/fr/function.preg-match.php