1

jquery で使用できる right() 関数に相当するものはありますか。ファイル拡張子がxlsxのレコードを取得したい。

 new Guid(context.Documents.Where(T => T.FileName == ".xlsx").Select(T => T.ItemGuid).First().ToString());

何かのようなもの

 select * from document where right(filename,4) = 'xlsx'

ファイル名を変数に保存して後で操作したくありません。where 条件で直接使用できるようにしたい。「Documents」はテーブル名で、「FileName」はアップロードするファイルの名前を保持するフィールドです。次に、拡張子「xlsx」を持つファイルのみをフィルター処理する必要があります。やってみた

  guid temp = new Guid(context.Documents.Where(T => T.FileName.Substring(T.FileName.Length - 4) == ".xlsm").Select(T => T.ItemGuid).First().ToString());

しかし、「シーケンスに要素が含まれていません」というエラーが表示されます。

*更新: EndsWith() を使用して、必要な情報を取得しました。これは今動作します:

  guid temp = new Guid(context.Documents.Where(T => T.FileName.EndsWith("xlsm")).Select(T => T.ItemGuid).First().ToString());

ありがとう。

4

6 に答える 6

1
filename.substr(-4)

負のインデックスを使用.substrすると、文字列の末尾から部分文字列が返されます。

于 2012-09-10T16:46:44.053 に答える
1

.sliceMDN )関数を使用できます。負の値を渡すと、文字列が最後から切り取られることを考慮してください。)

var test = 'filename.xslx';
if (test.slice(-4) === 'xslx') {
  alert("Passed");
}
于 2012-09-10T16:45:24.700 に答える
0

right()と同じですendswith()

function endsWith(str, suffix) {
    return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
于 2012-09-10T16:46:40.093 に答える
0

match()正規表現マッチングを提供するJavaScript を使用できます。

var filename = 'somefile.xlsx';
var matches = filename.match('/\.xlsx$/i');
if (matches.length > 0) {
    // you have a match
}
于 2012-09-10T16:47:36.460 に答える
0

ここ[name$="value"]に文書化されたセレクターを探しているかもしれません。

于 2012-09-10T16:46:26.553 に答える
0

ありません、使用できます

var filename = "file.xlsx";
var extension = filename.substr(filename.length - 4);

または、ドットの後の文字を取得するには、次を使用できます。

var extension = filename.split('.').pop();
于 2012-09-10T16:46:38.723 に答える