【问题标题】:How do I do string replace in JavaScript to convert ‘9.61’ to ‘9:61’?如何在 JavaScript 中进行字符串替换以将“9.61”转换为“9:61”?
【发布时间】:2011-01-09 21:35:47
【问题描述】:

给定代码行

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

value = 9.61,我需要将9.61 转换为9:61。此处如何使用 JavaScript 替换功能?

【问题讨论】:

  • 请注意,这与 jQuery 无关,而与普通的旧 javascript 无关。
  • 我也有类似的问题。我在 javascript 中有一个 'var' 变量,我想替换其中的字符串/字符。我试过这段代码: var myObject="my%dynamic%value\n"; myObject=myObject.replace("%","").replace("\n","");也试过 myObject=myObject.replace('%','').replace('\n','');它给了我替换不是已知功能的错误
  • 上述问题的确切错误消息是“Microsoft JScript 运行时错误:对象不支持属性或方法'replace'”

标签: javascript jquery


【解决方案1】:

这样做:

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 和但丁·库拉里

【讨论】:

  • 我试过了,但由于 value.replace 不是函数而发生错误:(
  • thephpdeveloper 添加了一些内容以使其正确...应该这样做...参见上面的编辑
  • 如果我们尝试一次替换多个值,这将不起作用。 :(
  • 要一次替换多个字符,请使用以下内容:name.replace(/&/g, "-")。在这里,我将所有 '&' 字符替换为 '-'。 “g”表示“全局”。
  • 注意 - 您可能需要添加方括号以避免错误 - title.replace(/[+]/g, " ")
【解决方案2】:

可能最优雅的方法是一步完成。见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"> 元素,可以有多个s 通过传入一个数组来选择。

.val() 方法允许我们设置 通过传入一个函数的值。作为 jQuery 1.4的,函数通过 两个参数,当前元素的 索引及其当前值:

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

这个例子附加了字符串 " items”到文本输入的值。

这需要 jQuery 1.4+。

【讨论】:

  • 但在我看来,这家伙只想更改 var value 而不是您建议的文本框中的值...
【解决方案3】:

我喜欢jQuery 的方法链接。简单地做...

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

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

【讨论】:

  • 这实际上与 jquery 链接无关。在您调用 .val() 之后,它是一个常规字符串。
【解决方案4】:

一个简单的单行:

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

【讨论】:

  • 这仅在值是字符串时才有效...而且,在其中调用 $("#text") 两次不是一个好习惯...
  • OP 也没有指定他想替换 $("#text") 的值 :)
  • 评论 1...错误。评论2……想想他的问题的逻辑,不需要说明。
  • 证明它.. 并记住,日期为Jan 27 '10 at 10:16
  • 你甚至不知道好的做法..你可能想读这个..stackoverflow.com/questions/3230727/…
【解决方案5】:

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

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

【讨论】:

  • 我不确定我是否遗漏了什么,但由于该值来自文本框,它是一个字符串否?示例jsfiddle.net/xMBuA
【解决方案6】:

您可以使用 JavaScript 函数,如替换,也可以将 jQuery 代码括在括号中:

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

【讨论】:

    【解决方案7】:
    $("#text").val(function(i,v) { 
       return v.replace(".", ":"); 
    });
    

    【讨论】:

      【解决方案8】:
      (9.61 + "").replace('.',':')
      

      或者如果你的9.61 已经是一个字符串:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-10
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 2023-02-03
        • 1970-01-01
        • 2020-01-18
        • 2015-11-11
        相关资源
        最近更新 更多