0

php スクリプトを js に変換する際に、phpjs.orgの関数をいくつか使用しました。ただし、「strpos」関数は同じ条件下で true を返さないようです。

$string = "aaa:bbb";
$colons = strpos($string, ":");
echo $colons;
if ($colons == true)
    {echo "yup";}

ただし、「3yup」がエコーされます。

var string = "aaa:bbb";
var colons = strpos(string, ":");
console.log(colons);    
if (colons == true)
    {console.log("yup");}

「3」のみをエコーし​​ます。

これは私の間違いですか、バグですか、それとも JavaScript の処理方法の側面ですか? trueいずれにせよ、コロンの存在の結果を得るにはどのような方法が推奨されstringますか?

ありがとう!

4

3 に答える 3

1

php と phpjs の実装の両方が正しい値 (3) を返していますが、セマンティクス==は異なります。

テストに相当する JS$colons == trueは次のとおりです。

Boolean(colons) == true
于 2013-10-16T05:41:25.770 に答える
1

に基づいて文字列の存在のみを取得したい場合strposは、次のことができると思います。

if (strpos(string, ":") != false) {
    console.log("string exists!");
}
于 2013-10-16T05:30:24.597 に答える
-3

JS の strpos() は true を返しません。代わりに位置を返します。あなたの場合は4を返します。

于 2013-10-16T05:31:45.040 に答える