删除字符串开头的非数字字符

时间:2017-11-03 10:44:19

标签: php regex preg-match

我需要从输入字段中获取值,在其上找到第一个数字,并在数字之前删除其他所有内容。

但我需要保留数字(及其之后的任何内容)。

我尝试了一些选项,但无法做到。

有什么想法吗?

我设法找到第一个数字在哪里。但是当我尝试删除之前的所有内容时,我最终还是删除了第一个数字,或删除了其他内容(例如句点和逗号)

以下是我获得第一个数字的位置:

$stringPrice = '__.500,00';
if(preg_match('/[0-9]/', $stringPrice, $positionNum, PREG_OFFSET_CAPTURE)) {
    echo "First number is at " . $positionNum[0][1];
} else {
    echo "Invalid value";
}

1 个答案:

答案 0 :(得分:3)

您当前的问题是从字符串的开头删除所有非数字字符到第一个数字。

使用

preg_replace('/^\D+/', '', $stringPrice);

请参阅PHP demo

^确保匹配从字符串的开头开始,\D+匹配除数字之外的一个或多个字符。