我是文本“data-RowKey = xxx”内的字符串名称内容。我试图摆脱xxx,所以我尝试了以下内容:
var val = content.substring(12 + content.indexOf("data-RowKey="), 3);
这根本不起作用。而不只是得到三个字符我得到一个很长的字符串。任何人都可以看到我做错了什么
答案 0 :(得分: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
答案 1 :(得分:2)
你使用的是错误的工具。如果要捕获与某些模式匹配的数据,则应使用regular expressions。如果您的值恰好是三个符号,则正确的表达式为/data-RowKey=(...)/
,其中.
代表任何符号,()
指定要捕获的部分。
答案 2 :(得分:1)
这有效:
var value = content.match(/data-RowKey=(.*)/)[1];
如果xxx
之后可能有值,请使用:
"data-RowKey=123abc".match(/data-RowKey=(.{3}).*/)[1] // 123
答案 3 :(得分:0)
如果您的rowkey是数字,那么这可能是最好的,因为您将数字作为整数获取并且以后不需要转换:
var val = parseInt( content.split("data-RowKey=")[1] );
如果总是三个字符和/或不需要转换:
var val = content.split("data-RowKey=")[1].substring(0,3);