我必须删除HTML标记之间的字符之间的空格。
E.G
<option value="0" title="Advertising / Promotional Charges">Advertising / Promotional Charges</option>
我已使用此代码
.replace(/\>\s+\</g,'');
但是它不起作用,我需要类似
的输出 <option value="0" title="Advertising / Promotional Charges">Advertising/PromotionalCharges</option>
答案 0 :(得分:2)
您可以使用:
.replace(/\s+/g, '')
而不是DOM元素本身。
这将匹配所有(/g
标志)空格(\s+
),并用''
(空字符串)替换
请参见下面的工作示例:
$('select option').each((_, elem) => { // Loop over all options in the dropdown
let currentText = $(elem).text(); // Get the current options text
let newText = currentText.replace(/\s+/g, ''); // Remove whitespace
$(elem).text(newText); // Set the text to the whitespace removed varient
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="0" title="Advertising / Promotional Charges">Advertising / Promotional Charges</option>
</select>
答案 1 :(得分:2)
您不应使用正则表达式将HTML修改为字符串。而是使用DOM更新option
元素的文本。不过,您仍然可以在此处使用正则表达式。特别是与\s
字符类一起删除所有空白。试试这个:
$('option').text(function(i, t) {
return t.replace(/\s/g, '');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="0" title="Advertising / Promotional Charges">Advertising / Promotional Charges</option>
<option value="1" title="Foo / Bar">Foo / Bar</option>
<option value="2" title="Fizz / Buzz">Fizz / Buzz</option>
</select>