2012-09-10 63 views
1

是否有與我可以在jquery中使用的right()函數相當的功能。我想用fileextension xlsx獲取記錄。Right()函數的等效

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

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

我不想文件名存儲在一個變量,後來操縱它。我希望能夠在我的情況下直接使用它。 「文檔」是我的表名,「文件名」是一個保存上傳文件名稱的字段,現在我只需要篩選具有擴展名「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()); 

謝謝。

+3

jQuery從哪裏來的呢? – lonesomeday

+0

* select * from *看起來更像是sql而不是jquery,我希望我知道是誰upvotes –

+0

關於DOM的文檔或文件名是什麼? – SliverNinja

回答

0

right()相同endswith()

function endsWith(str, suffix) { 
    return str.indexOf(suffix, str.length - suffix.length) !== -1; 
} 
1

您可以使用.sliceMDN)函數,考慮到將負值傳遞給它會使其從尾部切下字符串。 )

var test = 'filename.xslx'; 
if (test.slice(-4) === 'xslx') { 
    alert("Passed"); 
} 
+1

'.substring'不帶負指數。 – jackwanders

+0

@jackwanders固定。事實上,不知何故,我認爲'.slice'的行爲就像那樣。 – raina77ow

0

你可能會尋找[name$="value"]選擇記錄here

0

沒有,你可以使用

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

,或者拿到一個點之後的字符,你可以使用:

var extension = filename.split('.').pop(); 
1
filename.substr(-4) 

使用帶有負索引的.substr將返回字符串末尾的子字符串。

+0

Erm ...不是'substr(負)'在IE8中不受支持? ) – raina77ow

0

使用能夠提供正則表達式匹配的javascript match()

var filename = 'somefile.xlsx'; 
var matches = filename.match('/\.xlsx$/i'); 
if (matches.length > 0) { 
    // you have a match 
}