小编mea*_*dre的帖子

用','拆分句子并删除周围的空格

我有这个代码:

var r = /(?:^\s*([^\s]*)\s*)(?:,\s*([^\s]*)\s*){0,}$/
var s = "   a   ,  b  , c "
var m = s.match(r)
m => ["   a   ,  b  , c ", "a", "c"]
Run Code Online (Sandbox Code Playgroud)

看起来整个字符串已匹配,但哪里已经"b"消失了?我宁愿期望得到:

["   a   ,  b  , c ", "a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)

所以我可以m.shift()用一个结果,s.split(',')但也删除空格.

我在regexp中有错误还是我误解了String.prototype.match

javascript regex

61
推荐指数
7
解决办法
5万
查看次数

来自Cordova iOS插件的后续回调不会触发

从cordova插件(iOS版)中立即触发后续回调,我遇到了麻烦.在XCode调试器中,我清楚地看到它的步骤

[self.commandDelegate sendPluginResult:pluginResult callbackId:monitoredRegions.callbackId];
Run Code Online (Sandbox Code Playgroud)

几次(立即连续),每次都略有不同pluginResult.这会被触发

[locationManager requestStateForRegion:region];
Run Code Online (Sandbox Code Playgroud)

我不(也不能)控制.

问题是,在Javascript方面,回调只被触发一次.

什么(实际上不是那么)奇怪的是,如果我在回调中引入了一些阻塞,比如alert(),回调被多次触发(如预期的那样).这很酷但我alert()在应用程序中不需要任何东西.

如果我理解它,commandDelegate应该注意线程和排队,但它似乎没有.问题是,每次sendPluginResult调用时如何获取JS回调.

非常感谢!

objective-c ios phonegap-plugins cordova cordova-plugins

8
推荐指数
1
解决办法
4196
查看次数

在openSUSE 11.3上安装RMagick - gem无法构建其扩展

我在openSUSE 11.3上安装了RVM.我首选的Ruby版本是MRI 1.9.2p136.我尝试安装RMagick gem并得到以下输出:

Building native extensions.  This could take a while...                                                                                                      
ERROR:  Error installing rmagick:
ERROR: Failed to build gem native extension.

/home/user1/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... yes

Warning: Found more than one ImageMagick installation. This could cause problems at runtime.
         /usr/bin/Magick-config reports version 6.6.1 Q16 is installed in /usr
         /usr/bin/X11/Magick-config reports version 6.6.1 Q16 is installed in /usr
Using 6.6.1 Q16 from /usr.

checking for ImageMagick version …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems rmagick opensuse

4
推荐指数
1
解决办法
2796
查看次数

c ++ segfault:char指针

可能重复:
如何在C或C++中反转字符串?
为什么这个C代码会导致分段错误?
在c中修改char指针的值会产生段错误

运行一个非常简单的代码示例

#include <stdlib.h>
#include <iostream>

char* last_char(char* s){
  char* last = s;
  while (*last) ++last;
  return last;
}

char* in_place_reverse(char* s) {
  char* left = s;
  char* right = last_char(s);
  char temp;

  while( left < right ) {
    temp = *left;
    *left = *right;
    *right = temp;

    left++;
    right--;
  }

  return s;
}

int main(){
  char * s = "letters\n";
  std::cout << in_place_reverse(s);
}
Run Code Online (Sandbox Code Playgroud)

我一直都有

 Segmentation fault
Run Code Online (Sandbox Code Playgroud)

但是从我的角度来看,我在代码中没有做任何违法的事情.请帮我确定是什么问题.

PS我编译

g++ example.c
Run Code Online (Sandbox Code Playgroud)

c c++ pointers char segmentation-fault

-1
推荐指数
1
解决办法
944
查看次数