2017-09-18 4 views
-4

文字列に数値が含まれ、有効な測定単位を持っているかどうかをチェックする方法は? 150mlまたは8.9kgのようになります。私はそれが正規表現で実行可能であることを理解していますが、それは私の強みの一つではありません。これまでの内容:文字列に数値が含まれ、有効な測定単位を持っているかどうかをチェックする方法は?

$validunit = array('ml', 'g', 'kg', 'lb', 'oz'); 
$randomstring = '3.2oz'; 
//check the string for numerical value and unit, display true/false 

ありがとうございます。

+2

**自分でコードを書き込もうとします**。あなたが問題を抱えている場合は** [もっと研究している**](https://meta.stackoverflow.com/q/261592/1011527)の後**あなたが試したものを投稿してください** **動作しておらず、[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を提供しています。 [質問する](http://stackoverflow.com/help/how-to-ask)の良い質問をお読みください。 [ツアーに参加する](http://stackoverflow.com/tour)と[this](https://meta.stackoverflow.com/q/347937/1011527)を必ずお読みください。 –

+1

これに正規表現を使用する理由'substr'を使って確認することができます:[PHP文字列が別の文字列で終わるかどうかの最も効率的なテストは何ですか?](https://stackoverflow.com/questions/619610/whats-the-most-efficient-test-of -whether-a-php-string-ends-with-another-string)部分文字列一致を削除し、 'is_numeric'を使用して残りの文字列が数値であることを確認します – ctwheels

+0

[javascript regexから文字のみを返す](https ://stackoverflow.com/questions/23136947/javascript-regex-to-return-letters-only) – codeMonkey

答えて

0
$regex = "/\d+(\.\d+)?(ml|g|kg|lb|oz)/i"; 
$randomstring = '3.2oz'; 
if (preg_match($regex, $randomstring)) { 
    // true; 
} else { 
    // false; 
} 
関連する問題