gpt4 book ai didi

Javascript RegEx 之谜(给一个可怜的 C 程序员)

转载 作者:行者123 更新时间:2023-11-30 07:44:32 24 4
gpt4 key购买 nike

这显然是一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com