Javascript 使用正则表达式解析字符串,并将结果存储在数组或字符串中
我需要一些帮助来改进我的代码: 我是正则表达式系统的初学者 我想在脚本中输入下面的数字,并将其存储在字符串或数组中,直到输出“NUMBER1,NUMBER1\u NUMBER2\u,NUMBER2”的那一刻。我不明白为什么,我希望jsut数字在末尾Javascript 使用正则表达式解析字符串,并将结果存储在数组或字符串中,javascript,regex,Javascript,Regex,我需要一些帮助来改进我的代码: 我是正则表达式系统的初学者 我想在脚本中输入下面的数字,并将其存储在字符串或数组中,直到输出“NUMBER1,NUMBER1\u NUMBER2\u,NUMBER2”的那一刻。我不明白为什么,我希望jsut数字在末尾 function fetchnumber(){ extract = ""; for(picture = 1 ; picture < 5; picture++){ // get background image as a st
function fetchnumber(){
extract = "";
for(picture = 1 ; picture < 5; picture++){
// get background image as a string as this :
// url('http://www.mywebsite.com/directory/image_NUMBER_.png');
var NumberOfPicture = document.getElementById(picture).style.backgroundImage ;
reg = /\_(.*)\_/;
extract += reg.exec(NumberOfPicture);
}
}
函数fetchnumber(){
摘录=”;
用于(图片=1;图片<5;图片++){
//以字符串形式获取背景图像,如下所示:
//url('http://www.mywebsite.com/directory/image_NUMBER_.png');
var NumberOfPicture=document.getElementById(picture.style.backgroundImage);
reg=/\\\(.*)\\\/;
extract+=reg.exec(NumberOfPicture);
}
}
我为您编写了这个小示例。希望这对你有帮助
var inputString = 'http://www.mywebsite.com/directory/image_123_.png';
var imageNumber = (/image_([^_]+)_\.\w{3}$/.exec(inputString) || [,false])[1];
// so into imageNumber variable you will have a 123 or false if there is no mach
if (imageNumber) {
// here you can do something with finded
// part of text.
}
我祝你在执行方面好运
您问为什么会有[1]而不是[0]。原因是我们需要
当正则表达式不匹配时,也会出现相同的行为。这是引用自MDN
exec()方法执行对指定字符串中匹配项的搜索。
返回结果数组,或null
所以。如果正则表达式存在匹配项,则返回的数组将由
从位于零索引([0])且第一个反向引用位于第一个索引[1]的匹配字符串中,反向引用是括号之间的符号(sddsd)。但是如果没有匹配项,我们将传递[,false]作为输出,因此我们将预期结果
进入第一个数组索引[1]。使用不同的输入尝试代码。例如:
var inputString = 'some text some text ';
var imageNumber = (/image_([^_]+)_\.\w{3}$/.exec(inputString) || [,false])[1];
// so into imageNumber variable you will have a 123 or false if there is no mach
if (imageNumber) {
// here you can do something with finded
// part of text.
}
所以。。在这种情况下,将根本不执行该条件。我的意思是:
if (imageNumber) {
// here you can do something with finded
// part of text.
}
你现在的成绩如何?有控制台错误吗?首先阅读
RegExp.exec
的文档。它的回报是什么?另外,请确保您的ID确实是1、2、3和4。这很有效,谢谢,但我有一个问题,为什么是[1],而不是[0]?谢谢您的回答。