PHP 如何查找字符串中所有以 $ 或 £ 符号开头的价格并将其替换为 bootstrap 标签

PHP How to find all prices starting with $ or £ symbol within a string and replace them with bootstrap labels

我有以下文字:

You can purchase the red umbrella for just .99 and the blue one for £12.49. Limited time only

我想在字符串中找到 $14.99 价格并将价格包装在 bootstrap 标签中,£12.49[ 也是如此=21=].

有什么想法吗?

使用 PHP 你可以使用 strpos() 来获取每个 $(以及我键盘上没有的其他符号)的位置...

然后一旦你有了位置,只要确保你正在查看一个美元金额,方法是再次对子字符串执行 strpos 以找到最近的 .(点)在 $ 等之后...

<?php
$string = 'some stuff .99';
$pos = strpos($string, '$');
//pos = 11
$newstring = substr($string, $pos);
$dotpos = strpos($string, '.');
$yourfinalstring = substr($string, $pos, $dotpos + 2);
//your final string = .99
?>

在 javascript 中只需使用 indexOf()

var string = 'some stuff .99';
var pos = string.indexOf('$');
// pos = 11

我设法做到了这一点,但我必须为每种货币都做到这一点。我只有 2 种货币,所以我没问题。

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">

<?php
$string = 'You can purchase the red umbrella for just 55.99 and the blue one for .49. Limited time only.';
$pattern = '#$(\d*)\.(\d*)#';
$replacement = '<span class="label label-success">[=10=]</span>';
$string_with_price_replaced = preg_replace($pattern, $replacement, $string);

echo $string_with_price_replaced;
?>

感谢 Notorious Pet0 regexr.com 网站。很有用