【问题标题】:String slicing in javascriptjavascript中的字符串切片
【发布时间】:2017-12-09 10:03:28
【问题描述】:
export class Prices{
value : string;
}

const PRICES : Prices[] =[
{value :'$10,000'},{value :'$20,000'},{value :'$30,000'},{value                 
:'$40,000'},{value :'$50,000'},
{value :'$60,000'},{value :'$70,000'},{value :'$80,000'},{value 
:'$90,000'},{value :'$100,000'},
{value :'$125,000'},{value :'$150,000'},{value :'$175,000'},{value 
:'$200,000'},{value :'$225,000'},
{value :'$250,000'},{value :'$275,000'},{value :'$300,000'},{value 
:'$325,000'},{value :'$350,000'},
{value :'$375,000'},{value :'$400,000'},{value :'$425,000'},{value 
:'$450,000'},{value :'$475,000'},
{value :'$500,000'},{value :'$525,000'},{value :'$550,000'},{value 
:'$575,000'},{value :'$600,000'}]


export class ConstantProperty implements OnInit{
prices=PRICES;
selectedPriceMin : Prices;
}

我从 html 的下拉菜单中选择价格, 现在我想对选定的价格进行切片以删除美元符号。

【问题讨论】:

  • 你试过什么去掉美元符号?
  • MDN 上提供了这个问题的答案,但这可能不是正确的问题。您应该问的是,“以独立于语言环境的方式解析货币的最佳方法是什么?”

标签: javascript html angular


【解决方案1】:

要从字符串前面删除美元符号(或任何字符),请执行以下操作

var withoutDollarSign = withDollarSign.substr(1)

【讨论】:

    【解决方案2】:

    您可以map 数组将replace 应用于每个项目。

    console.log(
    [{value :'$10,000', region: 'NY'},{value :'$600,000', region: 'NY'}]
        .map(({value,...rest}) => ({value: value.replace('$', ''), ...rest}))
    );

    【讨论】:

    • 这会丢失所有其他x 可能的属性。
    • @Hitmands 已更新以处理这种情况,但此代码可能更难让 OP 理解,因为它引入了更多概念。
    • 你使用的是Object spread operator,这不是标准的,基本上我的答案是一样的......并且不要假设OP是初级的,因为在这种情况下不需要它。
    • @Hitmands 代码在Typescript 中,我一直在 Typescript 中使用对象扩展运算符,因为它对我来说似乎不那么冗长。同样,它更多的是偏好和环境。
    • 不,不是。 Object Spread Operator 在 ecmascript 提案下,这不是标准的,可能永远不会发布。 github.com/tc39/proposal-object-rest-spread
    【解决方案3】:

    如果{value :'$10,000'} 是您的数据结构,那么, 您可以通过这种方式删除$ 符号:

    const data = [{value :'$10,000'},{value :'$20,000'},{value :'$30,000'},{value:'$40,000'},{value :'$50,000'},
    {value :'$60,000'},{value :'$70,000'},{value :'$80,000'},{value 
    :'$90,000'},{value :'$100,000'},
    {value :'$125,000'},{value :'$150,000'},{value :'$175,000'},{value 
    :'$200,000'},{value :'$225,000'},
    {value :'$250,000'},{value :'$275,000'},{value :'$300,000'},{value 
    :'$325,000'},{value :'$350,000'},
    {value :'$375,000'},{value :'$400,000'},{value :'$425,000'},{value 
    :'$450,000'},{value :'$475,000'},
    {value :'$500,000'},{value :'$525,000'},{value :'$550,000'},{value 
    :'$575,000'},{value :'$600,000'}];
    
    
    console.log(
      data.map(i => Object.assign({}, i, {value: i.value.substr(1)}))
    )

    【讨论】:

      【解决方案4】:

      对字符串进行切片很简单:

      "$400.00".slice(1);
      

      var currencyString = "$400.00";
      var valueString = mystring.slice(1);
      

      其中 1 是您要切片的字符的索引。

      这假设 $ 符号将始终位于第一个位置。

      【讨论】:

        【解决方案5】:

        另一个例子:"$550,000".replace("$","");

        结果为“550,000”

        【讨论】:

          猜你喜欢
          • 2020-11-27
          • 2019-03-28
          • 2022-01-01
          • 2018-06-14
          • 1970-01-01
          • 2015-11-26
          • 1970-01-01
          • 1970-01-01
          • 2017-05-04
          相关资源
          最近更新 更多