我正在创建一个tinyMce插件,用于更改突出显示的文本之间的单词/字母空间。我的fn()看起来像这样:
function wordsLettersSpace(words, letters) {
var inst = tinyMCE.activeEditor;
var currSelection = $.trim(inst.selection.getSel());
if(currSelection != ""){
var content = "";
content = inst.selection.getContent({
format: 'html'
});
contentReplace = '<span style="word-spacing: '+words+'px; letter-spacing: '+letters+'px;">' + inst.selection.getContent({
format: 'html'
}) + '</span>';
inst.selection.setContent(content.replace(content, contentReplace));
window.alert(content);
}else{
Hyphenator.hyphenate(inst.getBody(), language);
}
tinyMceUpdate();
}
现在我需要在选择开始位置(如果存在)之前找到最接近的标签,并获得“字间距”和“字母间距”的样式值。此外,我需要摆脱任何内部选择,但只有标签而不是文本,知道span标签可以有不同的样式,所以简单的str.replace将无法工作。
我知道有一个内置的插件,但我需要在tinyMce iframe之外进行,并自定义它。
任何sugestions?
答案 0 :(得分:3)
JS正则表达式可用,并且使用preg_match完全符合您的要求。
https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions
javascript中的子字符串为str.substr(start, length)