问题描述
是这种情况:我正在处理Wordpress主题,并且页面上的所有标题(h1,h2,h3,h4,h5,h6)都必须大写,除了一个字母,字母: i 。该字母必须为小写。示例:需要小写字母。
我正在寻找不需要在WP admin中手动输入大写字母的解决方案,因为我不想以这种方式将其存储在数据库中。有什么办法可以做到这一点?
解决方法
您可以使用document.querySelectorAll("h1,h2,h3,h4,h5,h6")
找到需要更新的元素,该元素将返回类似数组NodeList
的元素。然后,您loop through it处理每个元素。
您可以使用其textContent
属性来获取并设置其文本。 (如果它们可能包含后代元素,例如<h1>Hi <em>there</em></h1>
,则更为复杂。)
您可以使用i
将replace
以外的字符串中的所有字符更改为大写:
element.textContent = element.textContent.replace(/[a-hj-z]+/g,str => str.toLocaleUpperCase());
如果您需要处理上述以英语为中心的正则表达式之外的字符,则一个简单的选择是使用[^i]
:
element.textContent = element.textContent.replace(/[^i]+/g,str => str.toLocaleUpperCase());
在toLocaleUpperCase
之类的地方使用1
只会返回原样。