gpt4 book ai didi

jquery - 如何在 jQuery 中测试选择器是否有效

转载 作者:行者123 更新时间:2023-12-01 00:07:12 24 4
gpt4 key购买 nike

我正在使用 AnythingSlider jQuery 插件,它动态读取 URL 中的哈希并通过 jQuery 选择页面上的项目。问题是最终用户如果到达 http://mydomain.com/#!demos/slider 就可以破坏插件。 .

有没有办法测试选择器是否有效而不是让 jQuery 崩溃(内置函数或正则表达式)?请参阅这个尝试执行 $('#!demos/slider') 的 jsFiddle 示例,但它崩溃了: http://jsfiddle.net/PvY2b/

$('#!demos/slider') <= Uncaught Error: Syntax error, unrecognized expression: #!demo/slider

最佳答案

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

来自:Basic HTML data types

因此,这样的事情可能会起作用:

if (/^[A-Za-z][A-Za-z0-9\-_:\.]*$/.test(selector)) {
// $('#' + selector)...
}

或者干脆逃避它:

selector = selector.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1');

关于jquery - 如何在 jQuery 中测试选择器是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13979323/

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