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

标签 javascript regex

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

这在控制台中打印我的名字。 但我必须打印这个

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

它抛出一个错误。 有没有办法从上面定义的问题中打印我的名字。我只能从内部调用它。

最佳答案

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

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()

或者你也可以试试这个,快速又肮脏。您可以使其更加健壮:此用法有限制。

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()

关于javascript - 如何使用正则表达式查找对象成员名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36256647/

相关文章:

javascript - 无需硬刷新的 Gif 重置缓存

javascript - 如何在 Node.js 脚本中获取有关 stdout 重定向文件名的信息

java - 将行分割为单词数组

regex - 根据模式匹配分离数值

javascript - 使用 jquery 和 regex 的电话号码格式

javascript - MomentJS .format() 在我的时区产生正确的日期 -1 天

javascript - 在 RequireJS 中为模块 ID 分配 "shortcut"?

javascript - 单击打印按钮时获取jsp页面的确切布局

php - 替换任何正则表达式 php

php - 使用 php/regex 验证美国电话号码