css - 转义symfony css选择器中的特殊字符或使用通配符

标签 css symfony

我正在使用 Symfony\Component\DomCrawler\Crawler 包来查找名称包含许多 css 特殊字符的表单

<input name="myfield[0].thing">

我正在使用

$messageElement = $crawler->filter('input[name=myField[0].thing]');

return $messageElement->attr($attribute);

但是我得到了错误

Symfony\Component\CssSelector\Exception\SyntaxErrorException: Expected "]", but found.

显然这是因为 symfony css 选择器使用 [ ] 来包含属性。所以如果我尝试转义所有特殊字符

$crawler->filter('input[name=myField\[0\]\.thing]');

我现在得到空输出。我该如何解决这个问题?

额外问题:是否可以改用通配符? * 似乎对我不起作用。

最佳答案

如果你封装它应该工作的字段名称,试试这个:

$messageElement = $crawler->filter('input[name="myField[0].thing"]');

return $messageElement->attr($attribute);.

对于奖金问题,您可以使用类似于此处建议的正则表达式匹配:wildcard * in CSS for classes

// For matching strings starting with a certain thing notice the ^=
$messageElement = $crawler->filter('input[name^="myField[0]"]');

// For matching strings containing with a certain thing notice the *=
$messageElement = $crawler->filter('input[name*="myField[0]"]');

关于css - 转义symfony css选择器中的特殊字符或使用通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40288782/

相关文章:

php - Symfony2 FOSUserBundle 注册角色异常

javascript - 我怎样才能让这个文本阴影与 IE 过滤器一起使用?

css - 调整浏览器窗口大小时保持背景图像居中

css - 向 CSS 菜单添加下拉过渡

php - Symfony2 Doctrine 架构更新失败

php - FOS 用户包安装错误

symfony - 使用 Monolog 在 Symfony2 中记录 PHP fatal error

html - 从右边距移动最右边的 float

html - 为什么 img 标签会超出其宽度?

php - Symfony 2 中的请求 header 包缺少授权 header ?