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

如果您只想基于 获得字符串存在strpos,那么我想您可以执行以下操作:

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

php 和 phpjs 实现都返回正确的值 (3),但语义==不同。

测试的等效 JS$colons == true是:

Boolean(colons) == true
于 2013-10-16T05:41:25.770 回答
-3

JS 中的 strpos() 不返回 true。相反,它会返回位置,在您的情况下,它将返回 4。

于 2013-10-16T05:31:45.040 回答