我对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" />

最佳答案

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

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

09-16 11:36