等效的Right()函数

时间:2012-09-10 16:43:26

标签: linq

我是否可以在jquery中使用等效的right()函数。我想用fileextension xlsx获取记录。

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

类似

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

我不想将文件名存储在变量中,以后再操作它。我想能够在我的条件下直接使用它。 '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());

但是我收到错误“Sequence contains no elements”错误。

* 更新:使用EndsWith()获取我想要的信息。这现在有效:

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

感谢。

6 个答案:

答案 0 :(得分:1)

您可以使用.sliceMDN)函数,考虑到将负值传递给它会使其从末尾剪切字符串。 )

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

答案 1 :(得分:1)

filename.substr(-4)

使用带有负索引的.substr将返回字符串末尾的子字符串。

答案 2 :(得分:0)

您可能正在寻找记录here[name$="value"]选择器。

答案 3 :(得分:0)

没有,你可以使用

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

或者要获得点后的字符,您可以使用:

var extension = filename.split('.').pop();

答案 4 :(得分:0)

right()endswith()

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

答案 5 :(得分:0)

使用可以提供正则表达式匹配的javascript match()

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