gpt4 book ai didi

javascript - 为什么我不能在 jQuery 中使用这个正则表达式过滤器选择这个输入字段?

转载 作者:行者123 更新时间:2023-11-29 14:47:59 25 4
gpt4 key购买 nike

所以我正在使用 padolsey's regex filter尝试选择动态生成的嵌套表单字段。为什么我在下面的选择器代码中一直为 test 获取空值?

jQuery.expr[':'].regex = function(elem, index, match) {
var matchParams = match[3].split(','),
validLabels = /^(data|css):/,
attr = {
method: matchParams[0].match(validLabels) ?
matchParams[0].split(':')[0] : 'attr',
property: matchParams.shift().replace(validLabels,'')
},
regexFlags = 'ig',
regex = new RegExp(matchParams.join('').replace(/^s+|s+$/g,''), regexFlags);
return regex.test(jQuery(elem)[attr.method](attr.property));
}

//selector code
$(document).ready(function() {
var test = $('input:regex(id, agreement_activities_attributes_\d*_id)');
console.log(test);
});

包含我要选择的输入字段的 html 代码

<input id="agreement_activities_attributes_0_id" name="agreement[activities_attributes][0][id]" type="hidden" value="28" />

最佳答案

代码中有错误。

.replace(/^s+|s+$/g,'')

应该是

.replace(/^\s+|\s+$/g,'')

那么它应该可以工作了。

替换会移除所有周围的空格( trim 字符串)。您在选择器 ( :regex(id, agreement_activities_attributes_\d*_id)) 中使用的空格将包含在匹配模式中,因此只会匹配 ID 以空格开头的元素。

关于javascript - 为什么我不能在 jQuery 中使用这个正则表达式过滤器选择这个输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30134606/

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