gpt4 book ai didi

jquery - 如何区分 jQuery 选择器字符串和其他字符串

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

我想检查字符串的“类型”。特别是,如何区分 jQuery 选择器字符串和其他字符串?也就是说,下面的代码中selectorTest应该如何实现?

    var stringType = function( value ) {   
var htmlExpr = /^[^<]*(<[\w\W]+>)[^>]*$/;

if ( htmlExpr.test(value) ) {
return "htmlstring";
}
if ( selectorTest ) {
return "selectorstring";
}
return "string";
}

最佳答案

您可以do what jQuery does内部并使用 the following regex 检查它是否是 HTML :

/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/

例如:

var stringType = function( value ) {   
var htmlExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/;

if ( htmlExpr.test(value) ) {
return "htmlstring";
}
if ( selectorTest ) {
return "selectorstring";
}
return "string";
}
<小时/>

请注意,在最新版本的 jQuery 中,there's another check明确“以 < 开头”和“以 > 结尾”以跳过正则表达式(纯粹是为了速度)。 The check looks like this在核心中(从 jQuery 1.6.1 开始):

if ( typeof selector === "string" ) {
// Are we dealing with HTML string or an ID?
if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
// Assume that strings that start and end with <> are HTML and skip the regex check
match = [ null, selector, null ];
} else {
match = quickExpr.exec( selector );
}

关于jquery - 如何区分 jQuery 选择器字符串和其他字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6007821/

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