我需要使用'layout - '
从元素开头删除所有类我试试:
var regex = new RegExp('\b' + 'layout-' + '.*?\b', 'g');
$(el)[0].className = $(el)[0].className.replace(regex, '');
但它不起作用。 解决方案可以在jQuery中。 有什么想法吗?
答案 0 :(得分:5)
您在问题中发布的RegExp无效,因为\b
未转义为\\b
。因此,实际的RegExp变为/layout-.*?/g
而不是/\blayout-.*?\b/g
。执行以下更改将起作用。
var regex = new RegExp('\\b' + 'layout-' + '.+?\\b', 'g');
您也可以尝试以下方式。这将删除所有类似layout-X
var regex = /(\s)*(layout-.*?)(?=\s)/g;
$('#test')[0].className = $('#test')[0].className.replace(regex, '');
输入: class=sample layout-10 layout-9 sample1 slayout
输出: class=sample sample1 slayout
RegExp说明:
\s
- 任何空格字符
(layout-.*?)
- 捕获所有值,例如layout-X,其中X可以是任意次数的任何字符
(?=\s)
- 向前看下一个空白字符(意思是直到结尾)
正如musefan在评论var regex = /\blayout-.+?\b/g;
中所指出的那样,也将完成这项工作。
答案 1 :(得分:1)