我需要从输入字段中获取值,在其上找到第一个数字,并在数字之前删除其他所有内容。
但我需要保留数字(及其之后的任何内容)。
我尝试了一些选项,但无法做到。
有什么想法吗?
我设法找到第一个数字在哪里。但是当我尝试删除之前的所有内容时,我最终还是删除了第一个数字,或删除了其他内容(例如句点和逗号)
以下是我获得第一个数字的位置:
$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";
}
答案 0 :(得分:3)
您当前的问题是从字符串的开头删除所有非数字字符到第一个数字。
使用
preg_replace('/^\D+/', '', $stringPrice);
请参阅PHP demo
^
确保匹配从字符串的开头开始,\D+
匹配除数字之外的一个或多个字符。