我想在Javascript中使用String.replace执行字符串的全局替换.
在文档中,我读到我可以使用/ g执行此操作,例如;
var mystring = mystring.replace(/test/g, mystring);
Run Code Online (Sandbox Code Playgroud)
这将取代mystring内的所有事件.表达式没有引号.
但如果我有一个变量可以找到,我怎么能没有引号?
我尝试过这样的事情:
var stringToFind = "test";
Run Code Online (Sandbox Code Playgroud)
//第一次尝试
mystring = mystring.replace('/' + stringToFind + '/g', mystring);
Run Code Online (Sandbox Code Playgroud)
//第二次尝试,根本没有多大意义
mystring = mystring.replace(/stringToFind/g, mystring);
Run Code Online (Sandbox Code Playgroud)
但他们不起作用.有任何想法吗?
在向项目添加依赖项时,我无法确定应该给它们的前缀,例如"classpath"或"compile".
例如,下面的依赖项应该是编译时还是类路径?
另外,这应该在我的应用程序 build.gradle中还是在模块特定的build.gradle中?
当前的build.gradle(在应用程序级别):
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'org.hibernate:hibernate-core:5.0.5.Final'
compile 'mysql:mysql-connector-java:5.1.38'
}
Run Code Online (Sandbox Code Playgroud) 我喜欢保持我的网站非常轻快,但当然我需要某种用户跟踪和分析.
看起来谷歌分析总是需要足够长的处理时间,我想用更快的东西(和/或本地托管)替换它,可能具有更少的功能.
我真的只关心这些指标:浏览器,操作系统,推荐人和特定日期或每周的每页点击率.
有没有人有任何好的建议,或Google Analytics真的是最好的选择吗?
我有简单的Sinatra应用程序.
web.rb:
require 'sinatra'
get '/' do
"Hello"
end
Run Code Online (Sandbox Code Playgroud)
的Gemfile:*
source :rubygems
gem 'sinatra', '1.1.0'
gem 'thin', '1.2.7'
Run Code Online (Sandbox Code Playgroud)
config.ru:
require './web'
run Sinatra::Application
Run Code Online (Sandbox Code Playgroud)
但是当我在Heroku上部署我的应用程序时,我会在日志中收到错误:
2012-03-27T19:17:48+00:00 heroku[router]: Error H14 (No web processes running) -> GET furious-waterfall-6586.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我的代码类似于对象数组中的此过滤条目:
var filterRegex = new RegExp(".*blah.*","ig");
if (filterRegex.test(events[i].thing) && events[i].show) {
console.log("SUCCESS: filtering thing " + i + " " + events[i].thing);
events[i].show = false;
numevents--;
}
Run Code Online (Sandbox Code Playgroud)
我得到的结果与if if条件不一致(用Firebug检查,两个条件都是单独的,但有时整个表达式的计算结果为false).但是,如果我实际上alert()在这个if语句中放入一个调用(如第4行),它会变得一致,我得到我想要的结果.
你能看出这个逻辑有什么问题,并告诉我为什么它并不总能产生预期的东西?
我一直在研究如何捕获JavaScript错误,然后将它们发送到我们自己的系统进行内部日志记录(因此我们可以尝试在可能的情况下进行复制,并修复任何可能的错误).到目前为止,我已经找到了不少付费服务:
该TrackJS一个看起来有趣,但我们真的负担不起每个月花费了没有更多的钱.然后我遇到了这个图片:
http://www.stacktracejs.com/#!/docs/stacktrace-js
我似乎无法忍受它.这是我正在尝试的:
window.onerror = function(msg, file, line, col, error) {
StackTrace.fromError(error).then(callback).catch(errback);
};
var callback = function(stackframes) {
var stringifiedStack = stackframes.map(function(sf) {
return sf.toString();
}).join('\n');
console.log(stringifiedStack);
};
var errback = function(err) {
console.log(err);
};
StackTrace.get().then(callback).catch(errback);
Run Code Online (Sandbox Code Playgroud)
......我得到的就是:
TypeError:ErrorStackParser未定义
var stackframes = ErrorStackParser.parse(error);
任何人都可以建议一个解决方案,或者看看我对stacktrace.js脚本做错了什么?
更新:在下面的帮助下,我至少能够让它现在做点什么.结果你需要多个js库:
但是,我似乎仍然无法继续下去.
var callback = function(stackframes) {
console.log(stackframes)
var stringifiedStack = stamap(function(sf) {
return sf.toString();
}).join('\n');
console.log(stringifiedStack);
};
var errback = function(err) { …Run Code Online (Sandbox Code Playgroud) 这可能是一个愚蠢的问题,所以请坚持下去.
为什么我看到这么多的例子通过比较它的toString()到"[object Function]"来测试一个对象是否是一个函数?
例如:
function isFunction(obj) {
return Object.prototype.toString.call(obj) == "[object Function]";
}
Run Code Online (Sandbox Code Playgroud)
我们不能使用instanceof Function或obj.constructor === Function?这些不是跨浏览器兼容的吗?
这似乎效率低下,但是呢?为什么?
我在用Hadoop在$ HADOOP_LOG_DIR产生太多的日志文件的问题/ userlogs(Ext3文件系统只允许32000子目录),它看起来像这个问题,同样的问题:在Hadoop中的MapReduce错误
我的问题是:有没有人知道如何配置Hadoop滚动日志目录或以其他方式防止这种情况?我试图避免只设置"mapred.userlog.retain.hours"和/或"mapred.userlog.limit.kb"属性,因为我想实际保留日志文件.
我也希望在log4j.properties中配置它,但是看看Hadoop 0.20.2源代码,它直接写入日志文件而不是实际使用log4j.也许我不明白它是如何完全使用log4j的.
任何建议或澄清将不胜感激.
我想直接使用groovy将数组项分配到变量中,如下所示:
def str = "xyz=abc"
def [name, value] = str.split("=")
Run Code Online (Sandbox Code Playgroud)
但是groovy并不喜欢它.有没有办法做到这一点(不存储数组结果并从中获取索引[0],索引[1]?).
谢谢,
似乎有大量文档用于使用IntelliJ IDEA 调试Play应用程序,但它们都假设Play是使用SBT构建的.
使用Gradle进行调试应该像以下一样简单:
GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9999" gradlew --no-daemon :runPlayBinary我遇到的问题是:断点从未被击中,处理继续正常进行.技术:播放2.3.X,IDEA 14.1,Gradle 2.8,Scala 2.10
我一定错过了什么,它是什么?
javascript ×4
gradle ×2
java ×2
regex ×2
analytics ×1
debugging ×1
dependencies ×1
groovy ×1
hadoop ×1
heroku ×1
log4j ×1
mapreduce ×1
performance ×1
ruby ×1
sinatra ×1
stack-trace ×1
string ×1