这个jQuery / Regex片段到底在做什么?

时间:2014-01-13 19:01:16

标签: javascript jquery regex

我对RegEx不是很了解,我正在努力学习。我继承了一个包含以下代码行的项目:

function findCourseIdFromForm(where) {
    var matchRegex = /\[course-[0-9]*\]/;
    var replaceRegex = /\[|\]|[a-z]|\-/g;
    return $(".cnumber", where.parent()).attr("name").match( matchRegex )[0].replace( replaceRegex,"" );
}

我不完全确定这段代码试图做什么,但我知道这会导致我的页面出现问题。我正在使用jQuery验证器,这个特定的组件(“.cnumber”)导致验证失败,我不完全确定原因,所以对此行的一些见解表示赞赏。

HTML中的.cnumber字段如下所示:

<input type="hidden" name="courses[course-0][cnumber]" class="cnumber" />

3 个答案:

答案 0 :(得分:1)

它会从标记中的name属性中删除[],小写字母和-,大概是为了返回课程编号。

答案 1 :(得分:1)

它只是获得课程编号。在您的示例中,它返回0

答案 2 :(得分:1)

此函数接受where节点,获取其父节点,在父节点中找到.cnumber节点,然后取[course-0]部分,最后删除所有[,{{1} },]和小写字母。

因此该函数返回-部分之后的数字,如果没有数字则返回空字符串