小编Azm*_*sov的帖子

正则表达式的替代方法:匹配不在引号内的所有实例

这个q/a,我推断出匹配给定正则表达式的所有实例不在引号内,是不可能的.也就是说,它无法匹配转义引号(例如:)"this whole \"match\" should be taken".如果有一种我不知道的方法,这将解决我的问题.

但是,如果没有,我想知道是否有任何可用于JavaScript的有效替代方案.我已经考虑了一下,但是没有任何优雅的解决方案可以在大多数(如果不是全部)情况下使用.

具体来说,我只需要使用.split()和.replace()方法的替代方法,但如果它可以更通用化,那将是最好的.

例如:
输入字符串:
+bar+baz"not+or\"+or+\"this+"foo+bar+
replace + with#,而不是引号内,将返回:
#bar#baz"not+or\"+or+\"this+"foo#bar#

javascript regex quotes escaping

56
推荐指数
3
解决办法
3万
查看次数

在iframe/div中禁用JavaScript

我正在制作一个小的HTML页面编辑器.编辑器将文件加载到iframe中.从那里,它可以添加,修改或删除页面上具有新属性,样式等的元素.问题在于,JavaScript(和/或其他编程语言)可以在加载时完全修改页面,之后你开始编辑元素.因此,当您保存时,它不会保存原始标记,而是保存修改后的页面+您的更改.

所以,我需要一些方法来禁用iframe上的JavaScript,或者在JavaScript开始修改页面之前以某种方式删除所有JavaScript.(我想我将不得不最终解析PHP的文件,但这不应该太难)我考虑编写一个脚本来遍历所有元素,删除任何标签,onclick,onfocus,onmouseover等等.但是这将是一个真正的痛苦.

有没有人知道一种更简单的方法来摆脱在iframe内部运行的JavaScript?

更新:除非我错过了什么,否则我认为没有办法简单地"禁用JavaScript".如果我错了,请纠正我.但是,我想这样做的唯一方法是从请求的页面字符串中解析出任何脚本标记和JavaScript事件(点击,鼠标悬停等).

javascript iframe

23
推荐指数
2
解决办法
2万
查看次数

PHP的EBNF语法定义?

我想知道是否有人在某处为PHP编译了EBNF.我找到了这个网站这个网站.但两者似乎都不完整.这个问题非常相似,但已经有一年了.我想知道是否取得了任何进展.

php grammar ebnf

17
推荐指数
2
解决办法
8599
查看次数

告诉C++指针数据是16字节对齐的

我用静态数组编写了一些代码,它的矢量化很好.

float data[1024] __attribute__((aligned(16)));
Run Code Online (Sandbox Code Playgroud)

我想动态分配数组.我尝试过这样的事情:

float *data = (float*) aligned_alloc(16, size*sizeof(float));
Run Code Online (Sandbox Code Playgroud)

但是编译器(GCC 4.9.2)不再能够对代码进行矢量化.我假设这是因为它不知道指针数据是16字节对齐的.我得到的消息如下:

note: Unknown alignment for access: *_43
Run Code Online (Sandbox Code Playgroud)

我尝试在使用数据之前添加此行,但它似乎没有做任何事情:

data = (float*) __builtin_assume_aligned(data, 16);
Run Code Online (Sandbox Code Playgroud)

使用不同的变量并restrict没有帮助:

float* __restrict__ align_data = (float*) __builtin_assume_aligned(data,16);
Run Code Online (Sandbox Code Playgroud)

例:

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

#define SIZE 1024
#define DYNAMIC 0
#define A16 __attribute__((aligned(16)))
#define DA16 (float*) aligned_alloc(16, size*sizeof(float))

class Test{
public:
    int size;
#if DYNAMIC
    float *pos;
    float *vel;
    float *alpha;
    float *k_inv;
    float *osc_sin;
    float *osc_cos;
    float *dosc1;
    float *dosc2;
#else
    float …
Run Code Online (Sandbox Code Playgroud)

c++ gcc sse memory-alignment

16
推荐指数
1
解决办法
1663
查看次数

PHP与JavaScript的速度?

我正在编写一个脚本来标记文件内容.我用JavaScript编写了一个tokenizer,但是对于大文件(5秒以上)来说它变得非常慢.因为我正在从服务器检索文件,我正在考虑用PHP重写它以减少几秒钟.我已经读过PHP和JavaScript之间的速度差异可以忽略不计,但是如果文件是1mb或更大,则速度差异可能会增加.我在网上找到了这个基准,但我不确定这些信息是否是最新的(过去几年中所有的JS引擎优化).

移植我的所有代码需要一些工作,所以如果我能帮助它,我将不会使用PHP.但如果它会更快(25-30%),那将是值得的.

javascript php performance

15
推荐指数
1
解决办法
2万
查看次数

JavaScript如何检测正则表达式?

我正在编写一个JS解析器,我想知道如何区分正则表达式(/lookup/g)和简单除法(bar/baz/g).JavaScript用于识别正则表达式的规则是什么?

javascript regex parsing

10
推荐指数
1
解决办法
510
查看次数

CUDA表面与纹理

CUDA中的表面和纹理对象有什么区别?我什么时候应该使用其中一种?

据开发人员文档我所知,它们完全相同.两者似乎都是使用特殊纹理内存的CUDA数组.唯一的区别似乎是访问内存的API方法.

memory cuda

10
推荐指数
1
解决办法
2098
查看次数

如何使用fontconfig获取字体列表(C/C++)?

我听说fontconfig是在linux中获取字体的最佳选择.不幸的是,我一直在查看他们的开发人员文档,我完全不知道我在做什么.看来没有简单的函数来获取系统字体列表.我必须执行模式搜索......对吗?

简而言之,使用fontconfig获取真实字体(它们的族,面和目录)列表的最佳方法是什么?当然,如果有比fontconfig更好的东西,我肯定会接受其他解决方案.

c c++ truetype

8
推荐指数
2
解决办法
5774
查看次数

Chrome扩展程序:如何在注入后删除内容脚本?

使用Google Chrome扩展程序:是否可以在内容脚本注入页面后将其删除?

没有用于重新加载内容脚本的API方法(据我所知),所以如果可能的话,我想重新注入脚本并删除旧脚本.

javascript google-chrome-extension

7
推荐指数
1
解决办法
4744
查看次数

使用freeglut进行OpenGL抗锯齿处理

我正在使用freeglut.我正在努力让FSAA工作,但似乎没有任何工作.样本缓冲区为1,样本为4.但我没有看到任何抗锯齿.我错过了什么吗?目前,我正在运行Ubuntu 12.04; 不确定是否会改变任何东西.

#include <GL/glut.h>
#include <GL/glext.h>
#include <stdio.h>


void render(void);

int main(int argc, char **argv){    
    glutInit(&argc,argv);

    //Initialize the window
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_MULTISAMPLE);
    glutInitWindowPosition(100,100);
    glutInitWindowSize(200,200);
    glutCreateWindow("Testing");
    glutDisplayFunc(render);

    //Enable FSAA       
    glEnable(GL_MULTISAMPLE);

    //2D graphics
    glDisable(GL_DEPTH_TEST);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, glutGet(GLUT_WINDOW_WIDTH), glutGet(GLUT_WINDOW_HEIGHT), 0, 0, 1);
    glMatrixMode(GL_MODELVIEW);


    GLint buf, sbuf;
    glGetIntegerv(GL_SAMPLE_BUFFERS, &buf);
    printf("number of sample buffers is %d\n", buf);
    glGetIntegerv(GL_SAMPLES, &sbuf);
    printf("number of samples is %d\n", sbuf);

    glutMainLoop();
    return 0;
}

//Draw some stuff
void render(void){  
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f); …
Run Code Online (Sandbox Code Playgroud)

c opengl freeglut

6
推荐指数
1
解决办法
3206
查看次数