javascript - 如何从元素中删除所有 jQuery 验证引擎类?

标签 javascript jquery css jquery-validation-engine

我有一个插件正在克隆输入,该输入可能绑定(bind)也可能未绑定(bind) jQuery 验证引擎。

因此,它的类可能包含例如validate[required,custom[number],min[0.00],max[99999.99]] 或 jQuery 验证引擎验证器的任意组合。

唯一可以肯定的是类以 validate[ 开始并以 ] 结束,但是为了使它像上面的例子更复杂,可以有[] 的嵌套集。

所以,我的问题是,如何使用 jQuery 删除这些类(不知道完整的类)?

最佳答案

这是我的实现,它没有使用正则表达式,但是嗯,谁说它也有?

//'first validate[ required, custom[number], min[0.00], max[99999.99] ] other another';
var testString = $('#test')[0].className; 

function removeValidateClasses(classNames) {
    var startPosition = classNames.indexOf("validate["),
        openCount     = 0, 
        closeCount    = 0,
        endPosition   = 0;

    if (startPosition === -1) {
        return;
    }

    var stringStart     = classNames.substring(0, startPosition),
        remainingString = classNames.substring(startPosition),
        remainingSplit  = remainingString.split('');

    for (var i = 0; i < remainingString.length; i++) {
        endPosition++;
        if (remainingString[i] === '[') {
            openCount++;
        } else if (remainingString[i] === ']') {
            closeCount++;
            if (openCount === closeCount) {
                break;
            }
        }
    }

    //concat the strings, without the validation part
    //replace any multi-spaces with a single space
    //trim any start and end spaces
    return (stringStart + remainingString.substring(endPosition)) 
           .replace(/\s\s+/g, ' ')
           .replace(/^\s+|\s+$/g, '');
}
$('#test')[0].className = removeValidateClasses(testString);

关于javascript - 如何从元素中删除所有 jQuery 验证引擎类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15133464/

相关文章:

javascript - jQuery html 响应

html - 样式化的复选框在表中重叠

css - PNG 图像在针对 Retina 缩放 50% 时看起来很奇怪

javascript - HTTPS 页面中的 HTTP iFrame 空白

javascript - div被添加重复

javascript - onclick 事件在移动设备上的函数内部不起作用?

javascript - 单击按钮切换元素 View

javascript - 我是否可以阻止用户修改元素的内部文本?

javascript - Skrollr 视差不适用于 iOS 和 Android 设备

javascript - Node.js JSON.stringify 变量未扩展