奇怪的js正则表达式行为

时间:2013-01-04 18:14:16

标签: javascript jquery regex firebug

我有以下代码:

$.get(TASK_FILE, function(data) {
    lines = data.split("\n");
    var place = /@[\S]*/g
    var category = /\+[\S]*/g
    lin = []
    for(line in lines)
    {
    var str = lines[line]
    var res = category.exec(str)
    console.log(res)
        if(res != null) 
    {
        str = str.replace(place, "");
        //lin[res[0]] = str;
    }

    }

    var res = category.exec("Czytanie +rosyjski @komunikacja @podrecznik")
    console.log(res)

TASK_FILE是文本文件的URL,其中包含:

Zadania z fizyki +mFizyka @dom
Czytanie +rosyjski @komunikacja @podrecznik

正如你所看到的,我希望获得具有“+ something”的文件的lisnes,并且我想将这些内容保存到var但是firebug输出真的让我感到惊讶: enter image description here

第一行文件是handeld正确但下一行不是。我做错了什么?

1 个答案:

答案 0 :(得分:3)

g(全局)标记与exec结合使用exec从最后一场比赛结束继续搜索。当然,当您在此期间切换搜索主题时,这可能会导致异常。只需在字符串上使用match函数:

str.match(category);