Как .select () часть входного значения? [Дубликат]

Моя собственная оригинальная попытка ...

var str = "The Car";

function reverseStr(str) {
  var reversed = "";
  var len = str.length;
  for (var i = 1; i < (len + 1); i++) {  
    reversed += str[len - i];      
  }

  return reversed;
}

var strReverse = reverseStr(str);    
console.log(strReverse);
// "raC ehT"

http://jsbin.com/bujiwo/19/edit?js,console,output

18
задан Lukasz 22 June 2010 в 15:56
поделиться

2 ответа

Для текстовых элементов <input> следующее задание будет выполнено. В примере выбирается только слово «два» на входе:

function setInputSelection(input, startPos, endPos) {
    input.focus();
    if (typeof input.selectionStart != "undefined") {
        input.selectionStart = startPos;
        input.selectionEnd = endPos;
    } else if (document.selection && document.selection.createRange) {
        // IE branch
        input.select();
        var range = document.selection.createRange();
        range.collapse(true);
        range.moveEnd("character", endPos);
        range.moveStart("character", startPos);
        range.select();
    }
}

document.getElementById("setSelection").onmousedown = function() {
    var input = document.getElementById("i");
    setInputSelection(input, 4, 7);
    return false;
};
<input id="i" type="text" value="One two three">
<input type="button" value="Set selection" id="setSelection">

32
ответ дан Tim Down 20 August 2018 в 10:06
поделиться
  • 1
    Честно говоря, я знаю, что это не учебный комментарий, но, на самом деле, на IE! 7 строк кода по сравнению с 2. Конечно, ваш путь может добавить больше функциональности в микс, но не нужен. Спасибо Тиму за предоставленный пример! – Jason Foglia 1 February 2013 в 07:46
  • 2
    @JasonFoglia: Код для надежного использования в старом IE в текстовых областях, где могут быть пустые строки, намного больше . Справедливости ради, IE 9 исправляет это, поддерживая selectionStart и selectionEnd. – Tim Down 1 February 2013 в 11:54
  • 3
    Я знаю, что это старый, но Firefox требует этого input.focus(); до input.selectionStart = startPos; – Bojan Dević 9 July 2013 в 13:44
  • 4
    @ BojanDević: Поскольку в некоторых браузерах текстовые поля могут быть выделены, но я стараюсь не разделять две вещи, но я думаю, что согласен с вами в этом вопросе. – Tim Down 9 July 2013 в 14:58
  • 5
    @vatavale: Основной код будет работать в течение многих лет, но у jsFiddle проблемы сфокусированы. Я изменил его, чтобы вместо этого использовать фрагмент кода, и добавил кнопку, чтобы установить выделение. – Tim Down 19 February 2016 в 10:54

Вам нужно будет выбрать все значение, а затем обработать строку в коде. В зависимости от того, что вы пытаетесь сделать со словами, вы можете использовать регулярные выражения для соответствия определенным словам / буквам.

-3
ответ дан Harold1983- 20 August 2018 в 10:06
поделиться
  • 1
    Как ваш код выделяет часть текста внутри текстового поля ввода? – Jason Foglia 1 February 2013 в 08:30
Другие вопросы по тегам:

Похожие вопросы: