如果存在小數點分隔符(點(。)或逗號(,)和千位分隔符(逗號(,)或點(。))傳入的值應該由圖案處理 我當前的代碼是想要根據當前情況給定輸入的preg_match()模式... PHP
if (!preg_match('/^((?:(?:\-?[\d' . $thousandSeparator . ']+(?:' . $decimalSeparator . '\d+)?)|\s*))\s*(.*)$/', $value, $matches))
{
throw_error;
}
CASE 1 - $ decimalSeparator = ' '; $ thousandSeparator =',';
允許案例 -
- 45,789.45
- 45,789.45釐米
- 789釐米
- 789.45釐米
- 1789釐米
- 78,789,756.45
不允許案例 -
- 45.789,78
- 45.789,78釐米
- 78.7.78,78
- 7.8,5
- 7.8釐米
案例2 - $ decimalSeparator = ''; $ thousandSeparator ='。';
允許的情況下 -
- 45.789,78
- 45.789,78釐米
- 789,45
- 1.789釐米
不允許的情況下 -
- 45,789.45
- 45,789.45釐米
- 789釐米
- 789.45釐米
- 1789釐米
- 78,789,756.45
- 78,78,78釐米
注 - '釐米' 是釐米這是可變的,可以有英寸,毫米,公里等單位可以存在與否,但如果它在那裏,它需要處理。現在我已經隨機放置了這個單元,請不要考慮單元,因爲它是確切的方式。
謝謝。:)
目前尚不清楚,我爲什麼'789.45 cm'應同時'7.8 cm'不是(對於第一種情況)被允許。 – Jan
https://regex101.com/r/Wc9Lf9/1 – Deadooshka