Я пытаюсь отменить символы пунктуации, которые появляются до или после выбора, и использовать функцию расширения слова. Например, у меня есть эта аннотацию:Rangy как развернуть без символов?
(56,87%) , а-хам inol (Жирный текст выделен текст "" включен)
Я пытаюсь получить следующее:
(56,87%), α-cadinol (Жирный текст выделен текст)
Я попробовал следующий метод:
var sel = rangy.getSelection();
var range = sel.getRangeAt(0);
var selectedText = range.text();
// Trim start
var match = /^\s*\.*\,*\"*\'*\;*\“*\-*\s*/.exec(selectedText);
if (match) {
range.moveStart("character", match[0].length);
}
// Trim end
match = /\s*\.*\,*\"*\'*\;*\”*\-*\s*$/.exec(selectedText);
if (match) {
range.moveEnd("character", -match[0].length);
}
sel.setSingleRange(range);
sel.expand("word", {
trim: true
});
Но не работает должным образом. Первая часть одних работает, но со второй он не работает, потому что это приводит к следующему:
(56,87 %), & alpha; cadinol (выделен Жирный текст)
Спасибо Тим. Однако проблема в том, что она берет символы, предшествующие слову. Как и%), когда он выбирает, это только «, α-cadinol». Я думаю, что проблема не в альфа-характере. Я попытаюсь исправить это с более сложным выражением. Благодаря!! – Martin
@Martin: Да, вам все равно понадобятся ваши существующие вещи, чтобы лишить пунктуацию. Извините, я должен был быть яснее. Альфа-символ определенно является проблемой для вызова 'expand()'. Для сравнения см. Следующее: http://jsbin.com/cepisexuco/1 –
Это работает! Но по неизвестным причинам это не сработало для меня. Но это решение. Спасибо. (У меня есть последняя версия Rangy) – Martin