如何使用正则表达式查找对象成员名称

时间:2016-03-28 05:41:57

标签: javascript regex

// username and password sent from form
$myusername=$_POST['login_user_name'];
$mypassword=$_POST['login_password'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE user_name='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("login_user_name");
session_register("login_password");
header("location:login-success.php");
}
else {
echo "Wrong Username or Password";
}


?>

这在控制台中打印myname。 但我必须打印这个

function myname()
{
Console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}

这是一个错误。 有没有办法从上面定义的问题打印myname。我只能从里面打电话。

2 个答案:

答案 0 :(得分:2)

您确定要使用":",而不是" ="

var myname = function myname() {
console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}

这有效。

或者你是说这个?

var myObj = {
  myname: function myname() {
    console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
  }
}

myObj.myname()

或者你可以尝试这个,快速n'脏。您可以使其更加健壮:这种用法存在局限性。

function findKey(val) {
   for (v in myObj) {
     if( myObj[v].toString() === val) {
       return v
     }
   }
}

var myObj = {
  myname: function() {
    console.log(findKey(arguments.callee.toString()));
  }
}

myObj.myname()

答案 1 :(得分:2)

myname: function() {
  console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}

在上面的代码中,myname不是funciton的名称,它是指向匿名函数的属性名称。

如果您想要该功能的名称,则必须提供一个。所以,例如

var a = {
   myname:function myname() 
     {  
       console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
     }
};
a.myname();

这将打印myname

有关更多信息,请阅读此内容。 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee