我知道这听起来可能是一个非常简单的问题,但我正在努力确保提供的字符串是数字/十进制格式,以便稍后使用PHP的number_format()函数.
我该怎么做 - 比如有人在文本字段中键入15:00 - 我应该使用什么正则表达式和php函数从中删除冒号并使其仅返回有效字符.
preg_match()返回数组 - 所以我不能将结果传递给number_format(),除非我implode()它或类似的东西.
非常感谢您的帮助.
bul*_*ley 120
使用is_numeric或intval可能是验证数字的最佳方法,但要回答您的问题,您可以尝试使用preg_replace.此示例删除所有非数字字符:
$output = preg_replace( '/[^0-9]/', '', $string );
Run Code Online (Sandbox Code Playgroud)
net*_*der 41
要删除任何不是数字的内容:
$output = preg_replace('/[^0-9]/', '', $input);
Run Code Online (Sandbox Code Playgroud)
说明:
[0-9] 匹配0到9之间的任何数字.^否定一种[]模式.[^0-9]匹配任何不是数字的东西,因为我们正在使用preg_replace它们,它们将被替换为任何东西''(第二个参数preg_replace).小智 16
这是正确的答案
preg_match("/^[0-9]+$/", $yourstr);
Run Code Online (Sandbox Code Playgroud)
如果匹配则该函数返回TRUE(1) ,如果不匹配则返回FALSE(0)
快速解释:
'^' :表示它应该以以下内容开头(在我们的例子中是一系列数字 [0-9] ) (以避免类似 ("abdjdf125") 的情况)
'+' :表示至少应该有一位数字
'$' :表示在我们的模式之后字符串应该结束 (以避免类似 ("125abdjdf") 的情况)
你可以尝试一下:
$string = preg_replace('/[^0-9]/', '', $string);
Run Code Online (Sandbox Code Playgroud)
干杯.
| 归档时间: |
|
| 查看次数: |
121665 次 |
| 最近记录: |