一尘不染

需要在jQuery选择器字符串中转义特殊字符

javascript

根据选择器文档,必须[使用双反斜杠等进行转义\\[

我有一个这样创建的选择器(假设val属性something[4][2]在此示例中)。

var val = $(this).attr('val');

$select.find('option[value=' +  val + ']').show();

我可以写一个正则表达式为我逃脱括号吗?


阅读 258

收藏
2020-05-01

共1个答案

一尘不染

如果您希望某些东西具有任何价值,请尝试以下操作:

var val = $(this).attr('val').replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\\\$&")

这可以通过用两个反斜杠转义jQuery文档的“
选择器”页面上列出的所有CSS元字符来工作。

请记住,在您的情况下,无需执行此类棘手的操作。您可以使用过滤器功能选择具有给定值的所有选项元素,而不必转义该值,如Mathias
Bynens的答案所述。

2020-05-01