Как мне заменить строку в JavaScript, чтобы преобразовать «9,61» в «9:61»?

275

Учитывая строку кода

var value = $("#text").val();

и value = 9.61мне нужно преобразовать 9.61в 9:61. Как я могу использовать функцию замены JavaScript здесь?

Нисант кумар
источник
29
Обратите внимание, что это не имеет ничего общего с jQuery, а только с простым старым javascript.
Ikke
1
У меня аналогичная проблема. У меня есть переменная 'var' в javascript, и я хочу заменить строку / символы в нем. Я попробовал этот код: var myObject = "my% dynamic% value \ n"; MyObject = myObject.replace ( "%", "") заменить. ( "\ п", ""); Также пробовал myObject = myObject.replace ('%', ''). Replace ('\ n', ''); Это дает мне ошибку, что замена не известная функция
Balaji Birajdar
Точное сообщение об ошибке для вышеуказанной проблемы: «Ошибка времени выполнения Microsoft JScript: объект не поддерживает свойство или метод« замена »»
Баладжи Бирадждар,

Ответы:

539

Делай это так:

var value = $("#text").val(); // value = 9.61 use $("#text").text() if you are not on select box...
value = value.replace(".", ":"); // value = 9:61
// can then use it as
$("#anothertext").val(value);

Обновлен в соответствии с текущей версией jQuery. А также здесь есть много ответов, которые лучше всего подходят для любой ситуации, подобной этой. Вы, как разработчик, должны знать, что есть что.

Заменить все вхождения

Для того, чтобы заменить несколько символов одновременно использовать некоторые вещи , как это: name.replace(/&/g, "-"). Здесь я заменяю все &символы с -. gозначает «глобальный»

Примечание - вам может потребоваться добавить квадратные скобки, чтобы избежать ошибки -title.replace(/[+]/g, " ")

кредиты Виссу и Данте Каллари

Reigel
источник
6
Я пробовал это, но произошла ошибка, так как value.replace не является функцией :(
Nisanth Kumar
thephpdeveloper добавил что-то, чтобы исправить это ... что должно сделать это ... см. выше отредактировано
Reigel
7
Это не сработает, если мы попытаемся заменить более одного значения за раз. :(
vissu
56
Для того, чтобы заменить несколько символов одновременно использовать некоторые вещи , как это: name.replace(/&/g, "-"). Здесь я заменяю все символы '&' на '-'. «г» означает «глобальный».
Vissu
9
Примечание - вам может потребоваться добавить квадратные скобки, чтобы избежать ошибкиtitle.replace(/[+]/g, " ")
Данте Каллари
67

Вероятно, самый элегантный способ сделать это - сделать это за один шаг. См val().

$("#text").val(function(i, val) {
  return val.replace('.', ':');
});

по сравнению с:

var val = $("#text").val();
$("#text").val(val.replace('.', ':'));

Из документов:

.val( function(index, value) )

функция (индекс, значение) Функция, возвращающая значение для установки.

Этот метод обычно используется для установки значений полей формы. Для <select multiple="multiple"> элементов можно выбрать несколько s, передав массив.

.val()Метод позволяет установить значение, передавая функции. Начиная с jQuery 1.4, функции передаются два аргумента: индекс текущего элемента и его текущее значение:

$('input:text.items').val(function(index, value) {
  return value + ' ' + this.className;
});

Этот пример добавляет строку «items» к значениям текстовых входов.

Для этого требуется jQuery 1.4+.

Клетус
источник
но, как я понимаю, парень просто хочет изменить, var valueа не значение в текстовом поле, как вы предложили ...
Рейгель
41

Я люблю цепочку методов jQuery . Просто сделай ...

    var value = $("#text").val().replace('.',':');

    //Or if you want to return the value:
    return $("#text").val().replace('.',':');
Шадрак Б. Орина
источник
17
это не имеет ничего общего с JQuery цепочки на самом деле. После того, как вы позвонили .val(), это обычная строка.
zerkms
19

Простой лайнер:

$("#text").val( $("#text").val().replace(".", ":") );
VIDesignz
источник
1
это будет работать только в том случае, если значение является строкой ... и, кроме того, $("#text")
повторный
ОП также не уточнил, что он хотел заменить значение $("#text"):)
Рейгель
Комментарий 1 ... Неверно. Комментарий 2 ... подумайте над логикой своего вопроса, уточнять не нужно.
VIDesignz
докажи это .. и помни, датированоJan 27 '10 at 10:16
Рейгель
вы даже не знаете хорошей практики ... вы можете прочитать это ... stackoverflow.com/questions/3230727/…
Рейгель
6

Это можно сделать с помощью обычной функции JavaScript replace().

value.replace(".", ":");
Андерс
источник
3
Я не уверен, что что-то пропустил, но так как значение приходит из текстового поля, это строка нет? Пример jsfiddle.net/xMBuA
Андерс
4

Вы можете использовать функции JavaScript, такие как replace, и заключить код jQuery в квадратные скобки:

var value = ($("#text").val()).replace(".", ":");
kravits88
источник
3
$("#text").val(function(i,v) { 
   return v.replace(".", ":"); 
});
andlrc
источник
1
(9.61 + "").replace('.',':')

Или, если у вас 9.61уже есть строка:

"9.61".replace('.',':')
ТЫ
источник