2016-09-13 12 views
0

Angular 2 TSの配列からファイル拡張子をトリムすることが可能かどうか疑問に思っていました。Angular2 Typescriptトリムファイル拡張子from配列

私はそれがJS内でトリムするのは簡単だと知っていますが、TS内でどのように行うのが簡単か疑問に思っています。私は、アレイから「PDFファイル」をトリムするアプローチだろうか

[ '1111111.pdf', '1111112.pdf' ] 

は私が返され、このデータを持っていると同じことができますか?

私はあなたがString.prototype.trim.applyを使用することができますjsの中で知っているが、矢野...任意の提案は

答えて

2

私はカスタムパイプを使用すると思います。

ワーキングデモ:あなたの返信用https://plnkr.co/edit/I45tLyFfXyjKIq5A7Mqu?p=preview

import { Pipe, PipeTransform } from '@angular/core'; 

@Pipe({ name: 'extension' }) 

export class RemoveExtension implements PipeTransform { 
    transform(item) { 
    return item.substring(0, item.indexOf('.')) 
    } 

} 

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'my-app', 
    template: `  
     <h1>Remove Extension:</h1>  
     <li *ngFor="let item of myData">{{item|extension}}</li> 
    ` 
}) 
export class AppComponent { 
myData=[ 'abc.pdf', 'xyz.pdf' ]; 
} 
+0

ブリリアントはパイプがそのように効果的であることに気付かなかった! alotを助ける!質問...だから '{{item | extension}}'は値(1111111.pdf)でしたが、今は(1111111)ですので、パイプを追加してフォームを提出すれば、値は拡張の有無に関係なくありますか?それは正しくないはずですか? –

+1

'form'を' reactiveForms'でどのように使うかによって決まります。このパイプは必要な値だけをトリミングします。 – micronyks

+0

私は周り遊ぶだろうが、私はカスタムパイプをありがとう! –

1

など、すべての標準のJavaScript呼び出しが用意されていて活字体は、ジャバスクリプトの拡張子だけですapprecaitedされるだろう。

しかし、この場合、trimはファイル拡張子ではなく空白を削除するだけです。

これを処理する最善の方法は、配列を列挙する "マップ"を使用して正規表現を使用してファイル拡張子を削除することです。

次の手順を実行する必要があります。

var myFileArray = ['1111111.pdf', '1111112.pdf'].map(function (e) { 
    return e.replace(/\.[^/.]+$/, ""); 
}); 
+0

おかげで、それはうまく動作しますが、提供パイプは、より効率的であると証明するが、私は答えを感謝し、それが動作するようupvoteますまあまあ。ありがとう! –

関連する問題