if (strpos($weight, 'g') !== false) { ... }
elseif (stripos($weight, 'kg') !== false) { ... }
最初の条件は、すべてkg
の重みにも一致します。私はxxx g
またはxxg
と一致したいだけです。 g
部分文字列一致の例外の作成
if (strpos($weight, 'g') !== false) { ... }
elseif (stripos($weight, 'kg') !== false) { ... }
最初の条件は、すべてkg
の重みにも一致します。私はxxx g
またはxxg
と一致したいだけです。 g
部分文字列一致の例外の作成
xxx gまたはxxgまたはxxxgまたはxxgをキャプチャするには、正規表現を使用してユースケースをテストすることができます。これは、2ギガバイト(2g、3g、4gを除く)です。ただ、上にあなたのelseifを入れ
<?php
if(preg_match('/\d{2,} ?g/', $input)){
// this should only work for:
// 12g, 12 g, 123g, 123 g, 1235g, 1234 g
}
'\ d {2、}?g'が良いでしょう。 '\ d'は' [0-9] 'と同じです。 '[\ d]'は必要ありません。 '{2、} +'と同じです - '{2、} 'は2から無制限までを意味します。余分な '+'の必要はありません。 –
私は同意します。私は正規表現を修正するだろう、私は最初にいくつかの数字の数をテストするつもりだったが、後で彼は2桁以上を望んだことを見た..また、一致をキャプチャする必要はない '()'を削除した – Merv
:
例の正規表現のようなものだろうか?私。最初の条件はkgをテストする必要があり、elseifはgをテストする必要があります。 – Merv
この場合、Regexははるかに使いやすくなります。 –
REGX '[a-zA-Z] {2,3} [g]'はどちらの場合もテストします – Zain