我有一个 JSON 编码的 PHP 数组:
<script>
var registeredEmails = <?php echo(json_encode($emails)); ?>;
</script>
为了检查这是否有效,我这样做:
console.log(registeredEmails);
// this outputs: ["john@domain.com", "mary@domain.com"]
现在我想遍历那个 JSON 并针对它包含的所有字符串测试某个字符串。
for (var email in registeredEmails) {
if (registeredEmails.hasOwnProperty(email)) {
var duplicate = registeredEmails[email];
console.log(duplicate + ' is typeof: ' + typeof(duplicate));
// this outputs: john@domain.com is typeof: string
// $(this).val() is a string from somewhere else
if (duplicate.test($(this).val())) {
// we found a match
};
}
}
据我了解,该test()
方法测试字符串匹配。我已经测试以确保我的变量duplicate
是一个字符串,但显然它仍然是一个对象。我收到以下 JS 错误:
Uncaught TypeError: Object john@domain.com has no method 'test'
这是为什么?