作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这显然是一个 RTFM 问题,但在我反复这样做之后,我就是无法让这该死的东西工作,所以有时候寻求帮助是有道理的:
var text = "KEY:01 VAL:1.10,KEY:02 VAL:2.20,KEY:03 VAL:3.30";
var pattern = '/KEY:(\S+) VAL:([^,]+)/g';
//var pattern = '/KEY:(\S+) VAL:(.?+)(?:(?=,KEY:)|$)/g';
//var pattern = '/KEY:(\S+) VAL:(.+)$/g';
//pattern.compile(pattern);
var kv = null;
var row = 0, col = 0;
while((kv = pattern.exec(text) != null))
{
row = kv[1].charAt(0) - '0';
col = kv[1].charAt(1) - '0';
e = document.getElementById('live').rows[row].cells;
e[col].innerHTML = kv[2].slice(0, kv[2].indexOf(","));
}
kv[1] 应该给出“01”kv[2] 应该给出“1.10”
...当然 kv[] 应该列出 'text' 的所有值填写名为“实时”的表格。
但我无法让 pattern.exec()
成功地做到这一点。
问题在哪里?
最佳答案
首先,RegExp 的分隔符应该是/
,没有必要将它们放在'
分隔符中。即要让您的 exec
正常运行,您应该:
var pattern = /KEY:(\S+) VAL:([^,]+)/g;
其次,您将一个您不想要的 bool 值分配给 kv
。如果 while 不是 null
,则显然只会评估为 true
,所以这是多余的。相反,您只需要:
while (kv = pattern.exec(text)) {
这应该能让您的代码按照您的意愿工作。
关于Javascript RegEx 之谜(给一个可怜的 C 程序员),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9656731/
我一直在使用高精度时间在控制台中记录我的程序事件。但很快我就注意到程序有时会显示四舍五入到毫秒的时间,有时则不会!它完全偶尔发生,它是相同的代码,未重新编译,未在运行之间编辑: using Syste
首先:该代码被认为是纯粹的乐趣,请在生产中不要做任何类似的事情。在任何环境下编译并执行这段代码后,对于您,您的公司或您的驯鹿造成的任何伤害,我们概不负责。以下代码不安全,不可移植,并且非常危险。被警告
我正在投影图像,然后检查它: 高度是20px。这是正确的。 然后我检查包含 img 的 data-radium 元素,令我惊讶的是: 尽管没有内容,该元素的高度“增长”了两个像素。此外,data-ra
我是一名优秀的程序员,十分优秀!