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 条件下直接使用它。“文档”是我的表名,“文件名”是一个包含我上传的文件名称的字段,现在我只需要过滤扩展名为“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

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

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

.substr与负索引一起使用将返回字符串末尾的子字符串。

于 2012-09-10T16:46:44.053 回答
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 回答
0

right()是相同的endswith()

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

match()使用提供正则表达式匹配的can 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 回答