我需要提取字符串中的每个字符并在索引中显示位置。
我的编码是:
$(document).ready(function() {
//localStorage.clear();
wert = 0;
if (localStorage.getItem("wert") !== null) {
wert = parseInt(localStorage.getItem("wert")) + 1;
}
fenster_anzahl = parseInt(localStorage.getItem("wert", wert));
for (var i = 1; i <= fenster_anzahl; i++) {
if (localStorage.getItem('site_' + i) !== null) {
$(".arrowcontainer").hide(0);
saved_url = localStorage.getItem('site_' + i);
//alert(i);
$("#content").prepend('<div class="wrap wrapadded" style="overflow:hidden;"><iframe class="added-iframe" style="transform: scale(0.75);transform-origin: -15% 0; width:150%; height:1800px;" src="' + saved_url + '" name=""></iframe><button class="deletebutton" id="site_' + i + '">x</button></div>');
}
}
$("#content").on("click", ".deletebutton", function() {
$(this).parent().hide();
localStorage.removeItem($(this).attr('id'));
});
$(".addbutton").mouseup(function() {
$("#content").prepend('<div class="wrap wrapadded" style="overflow:hidden;"><div style="margin-top:80px;">Bitte URL des Airtrackers eingeben</div><br><input type="text" class="url_eingeben" style="height:40px; width:200px; margin-top:50px; border:0px; font-size:15pt; padding:20px; background:#013780; color:#FFF" value="http://"><br><button class="bestaetigen" style="padding: 20px; margin-top:50px;">Bestätigen</button><button class="deletebutton" id="site_' + wert + '">x</button></div>');
$(".arrowcontainer").fadeOut(200);
});
function addURL(obj, url) {
wert = parseInt(wert) + 1;
obj.parent().closest('div').html('<iframe class="added-iframe" style="transform: scale(0.75);transform-origin: 0 0; width:150%; height:1800px;" src="' + url + '" name=""></iframe><button class="deletebutton" id="site_' + wert + '">x</button>');
localStorage.setItem("site_" + wert, url);
localStorage.setItem("wert", wert);
$(document).ready(function() {
var iFrameDOM = $("iframe#site_" + wert).contents();
iFrameDOM.find("body").css("background", "#f00");
});
}
$("#content").on("click", ".bestaetigen", function(e) {
var url = $(this).prevAll('input').val();
addURL($(this), url);
});
$("#content").on("keyup", ".url_eingeben", function(e) {
if (e.which == 13) {
var url = $(this).val();
addURL($(this), url);
}
});
});
但是它显示了索引位置0的所有字符
答案 0 :(得分:1)
一种简单的方法是将split字符串放入其字符列表中并将其分配给数组
my @chars = split //, $string;
然后按照您的意愿迭代数组的索引foreach my $i (0..$#chars)
。
但是,在这种情况下使用substr并不合理。它返回给定位置$i
的单个字符,然后@a
包含单个元素。
如果您想使用substr
,则必须处于$i
从0
迭代到字符串长度-1
的循环中,因此,提取每个字符。然而,这将是非常低效的,涉及为每个角色调用substr
。
使用正则表达式和pos
use warnings;
use strict;
use feature 'say';
my $string = q(abcdefg);
while ($string =~ /(.)/g) { say "$1: ", pos $string }
此处.
匹配任何字符,而/g
修饰符使其在下一次迭代中从该位置继续匹配,从而逐字符扫描字符串。由于每个匹配都由()
捕获,因此可在$1
中找到。 pos
&#34; 返回上次m//g
搜索停止的位置的偏移 ...&#34;
答案 1 :(得分:-1)
在你的例子中
@a
是一个包含一个单独元素的数组,因为
是空字符串$seq2
未初始化。因此预期答案为:0和空字符串。