Мне не удалось найти ничего, что было бы полезно в моей конкретной ситуации, поэтому вот вопрос: для конкретной строки, как проверить, является ли он правильным селектором jQuery (на данный момент давайте сделаем его простым и ограничимся непривычным jQuery-селекторы), или, если это слишком сложно, допустимый CSS-селектор - в основном:
$.isSelector("div") = return true
$.isSelector("* [") = return false - unclosed attribute selector
$.isSelector("* []") = return false - empty attribute selector
$.isSelector("* [name]") = return true
$.isSelector("/hiThere") = return false - invalid / character
$.isSelector("body > ") = return false - > without following child selector
$.isSelector("body > [name=\\\[girls_just_want_to_have_fun\\\]].on a .beach") = return true
Возможно, есть внутренняя функция jQuery, которая выполняет проверку (или RegExp), но мой вуду слишком беден, чтобы найти его.
Возможно что-то вроде этого:
function isSelector(string)
{
try
{
$(string);
return true;
}
catch(e)
{
return false;
}
}
бы справиться, но это выглядит немного экстремально.
Ура!