Javascript 在js中拆分字符串并根据特定字母询问是否

Javascript 在js中拆分字符串并根据特定字母询问是否,javascript,jquery,html,Javascript,Jquery,Html,我想根据各种图像标记的alt文本执行一个if语句。 因此,我的标记类似于: <img src="image1.png" alt="1 vote, average: 3.00 out of 5"> <img src="image2.png" alt="3 votes, average: 4.00 out of 5"> <img src="image3.png" alt="5 votes, average: 5.00 out of 5"> 图像的alt将始终相同

我想根据各种图像标记的
alt
文本执行一个if语句。 因此,我的标记类似于:

<img src="image1.png" alt="1 vote, average: 3.00 out of 5">
<img src="image2.png" alt="3 votes, average: 4.00 out of 5">
<img src="image3.png" alt="5 votes, average: 5.00 out of 5">

图像的
alt
将始终相同,只是
vote
votes
不同。因此,在JS中,必须能够在
'average:'
之后拆分字符串,以分离数字,并在此基础上执行if语句。

您可以使用regex和parseFloat完成这一切

var stringValue = $('img').attr('alt');
var value = parseFloat(stringValue.replace(/^.*average: (.*) out.*$/, '$1'), 10);

// do what you need with value
另一种方法是进行正则表达式匹配

if ($('img').attr('alt').match(/ 5\.00 /) != null) {
  // do stuff
}
第三种选择是使用正则表达式测试方法

var search = / 5\.00 /;
if ( search.test($('img').attr('alt')) ) {
  // do stuff
}

如果你的数字总是有两位小数,你可以这样做:

$("img").each(function(){
    var altParts = $(this).attr('alt').split(': ');
    var average = '';

    if (altParts.length == 2) {
        average = altParts[1].substr(0,4);
    }
    if (average == '5.00')
    {
      alert($(this).attr('src'));
    }
 });

平均值
数字
获取部分,然后从该部分拆分数字,如下所示:

var data = $('img').attr('alt');

var pattern = /average\:\s*\d+\.0{2}/; //getting parts 'average: 3.00'
var matchPatt = data.match(pattern)[0]; 
var resArr =  matchPatt.split(":"); // splitting into array [average, 3.00]
var number = resArr[1] // number is 3.00

是的,就是这样!非常感谢。
var data = $('img').attr('alt');

var pattern = /average\:\s*\d+\.0{2}/; //getting parts 'average: 3.00'
var matchPatt = data.match(pattern)[0]; 
var resArr =  matchPatt.split(":"); // splitting into array [average, 3.00]
var number = resArr[1] // number is 3.00