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