如何在JavaScript中进行字符串替换以将“ 9.61”转换为“ 9:61”?


275

给定代码行

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

而且value = 9.61,我需要转换9.619:61。如何在这里使用JavaScript替换功能?


29
请注意,这与jQuery无关,而仅与普通的旧javascript有关。
Ikke 2010年

1
我有一个类似的问题。我在javascript中有一个'var'变量,我想替换其中的字符串/字符。我尝试了以下代码:var myObject =“ my%dynamic%value \ n”; myObject = myObject.replace(“%”,“”)。replace(“ \ n”,“”); 还尝试了myObject = myObject.replace('%','')。replace('\ n',''); 它给了我替换不是已知功能的错误
Balaji Birajdar

上述问题的确切错误消息是“ Microsoft JScript运行时错误:对象不支持属性或方法“替换””
Balaji Birajdar

Answers:


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, " ")

学分维苏(Vissu)和但丁·库拉里(Dante Cullari)


6
我试过了,但是发生了错误,因为value.replace不是一个函数:(
Nisanth Kumar 2010年

thephpdeveloper添加了一些使其正确的内容...应该做到的...参见上文编辑
Reigel 2010年

7
如果我们尝试一次替换多个值,则此方法将无效。:(
vissu 2012年

56
要一次替换多个字符,请使用类似以下内容:name.replace(/&/g, "-")。在这里,我将所有'&'字符替换为'-'。“ g”表示“全局”。
维苏

9
注意-您可能需要添加方括号以避免发生错误title.replace(/[+]/g, " ")
Dante Cullari

67

做到这一点的最优雅的方法可能是一步完成。请参阅val()

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

相比:

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

从文档:

.val( function(index, value) )

function(index,value)返回要设置的值的函数。

此方法通常用于设置表单字段的值。对于 <select multiple="multiple"> 元素,可以通过传入数组来选择多个。

.val()方法允许我们通过传入函数来设置值。从jQuery 1.4开始,该函数传递了两个参数,即当前元素的索引及其当前值:

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

本示例将字符串“ items”附加到文本输入的值。

这需要jQuery 1.4+。


但正如我所见,那家伙只是想更改var value而不是您建议的文本框中的值...
Reigel 2010年

41

我喜欢jQuery的方法链接。只是做...

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

    //Or if you want to return the value:
    return $("#text").val().replace('.',':');

17
这实际上与jquery链接无关。调用后,.val()它是一个常规字符串。
zerkms 2013年

19

一个简单的班轮:

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

1
只有在值是字符串的情况下,这才起作用...而且,$("#text")两次调用都没有好的习惯...
Reigel 2012年

在OP也没有说明他想取代的价值$("#text"):)
Reigel

评论1 ...错误。评论2 ...思考他的问题的逻辑,无需说明。
VIDesignz

证明它..并且记得,过时Jan 27 '10 at 10:16
Reigel 2012年

你甚至不知道好习惯..你可能需要阅读这个.. stackoverflow.com/questions/3230727/...
Reigel

6

可以使用常规的JavaScript函数来完成replace()

value.replace(".", ":");

3
我不确定是否错过了某些内容,但是由于值来自文本框,因此它是字符串否?示例jsfiddle.net/xMBuA
Anders

4

您可以使用JavaScript函数(例如replace),并将jQuery代码包装在方括号中:

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

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

1
(9.61 + "").replace('.',':')

或者,如果您9.61已经是一个字符串:

"9.61".replace('.',':')
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.