2

我是文本“data-RowKey=xxx”内的字符串名称内容。我试图摆脱 xxx 所以我尝试了以下方法:

var val = content.substring(12 + content.indexOf("data-RowKey="), 3);

这根本不起作用。而不是只得到三个字符,我得到一个很长的字符串。谁能看到我做错了什么

4

4 回答 4

2

.substring() [MDN]有两个索引,.substr() [MDN]有一个索引和长度。尝试:

var val = content.substr(12 + content.indexOf("data-RowKey="), 3);

如果"data-RowKey=xxx"是整个字符串,还有其他各种获取方法xxx

var val = content.replace('data-RowKey=', '');
var val = content.split('=')[1]; // assuming `=` does not appear in xxx
于 2012-05-31T16:31:24.150 回答
2

你使用了错误的工具。当您想捕获与某种模式匹配的数据时,您应该使用正则表达式。如果您的值恰好是三个符号,则正确的表达方式是/data-RowKey=(...)/代表.任何符号并()指定要捕获的部分。

于 2012-05-31T16:31:48.640 回答
1

这有效:

var value = content.match(/data-RowKey=(.*)/)[1];

现场演示

如果 之后可能有值xxx,请使用:

"data-RowKey=123abc".match(/data-RowKey=(.{3}).*/)[1] // 123
于 2012-05-31T16:34:08.583 回答
0

如果您的 rowkey 是数字,这可能是最好的,因为您将数字作为整数并且以后不需要转换:

var val = parseInt( content.split("data-RowKey=")[1] );

如果总是三个字符和/或不需要转换:

var val = content.split("data-RowKey=")[1].substring(0,3);
于 2012-05-31T17:02:26.060 回答