Javascript 使用Jquery查找和计算字符串

Javascript 使用Jquery查找和计算字符串,javascript,jquery,arrays,regex,Javascript,Jquery,Arrays,Regex,我想使用Jquery在下表中查找II、III、I、D、F和CP的数量。首先,我想使用正则表达式,但它对我不起作用。我只是一个初学者,这是我迄今为止尝试过的 表: <table> <tr> <th>Sl</th> <th>Name</th> <th>status</th> <th>position</th> </tr>

我想使用Jquery在下表中查找II、III、I、D、F和CP的数量。首先,我想使用正则表达式,但它对我不起作用。我只是一个初学者,这是我迄今为止尝试过的

表:

<table>
   <tr>
     <th>Sl</th>
     <th>Name</th>
     <th>status</th>
     <th>position</th>
   </tr>
   <?php while($row= $dbh->fetch(PDO::FETCH_ASSOC)){
   <tr>
     <td><?php echo $row['id'];?></td>
     <td><?php echo $row['nm'];?></td>
     <td class="st"><?php echo $row['st'];?></td>//Regular AND private
     <td class="ps"><?php echo $row['ps'];?></td>//output-CP, I, II, III, D, F
   </tr>
<?php } ?>
</table>
我希望ps值
(IIIIIIIIIIIIIIIIIIIIIIIPIIIIIIIII)
采用以下格式:

II, I,III,D,III,I,CP,III,I,I,I,D,II,CP,II,F,I,III 
这样我就可以像下面那样单独计算它们(或者请建议更好的方法):

所以我的问题是:如何使用jquery从我的表中获得像这样的格式化数据。我想分别找到普通和私人身份的CP职位的数量。请帮助我。

您可以使用:

输出:
[“II”、“I”、“III”、“D”、“III”、“CP”]

因此,如果希望基于前面的
.st
行创建数组,可以执行以下操作:

var texts_private = $.map($('td.st:contains("Private") + td'), function (el) {
    return $(el).text();
});
var texts_regular = $.map($('td.st:contains("Regular") + td'), function (el) {
    return $(el).text();
});
console.log(texts_private, texts_regular);
它将抓取
.st
行,用
:contains()
查看其中的文本,然后查看下一行

该功能将为您提供两个阵列:

["I", "D", "CP"] ["II", "III", "III"]

停止使用不推荐的
mysql.*
函数,改用PDO/MySQLi。使用PHP短标记可能会导致兼容性问题。尽量避免them@Raptor是的,请。我知道。但这对我没有帮助,因为我的问题只是jquery,而不是php部分。@LalhriatpuiiMapuii发布生成的HTML,而不是服务器端代码,因为这个问题是关于jquery/JS的。@Raptor,谢谢你的关注。我把它改成了pdo。谢谢你的尝试。我怎样才能分别获得私有状态和常规状态下的CP的数量?这将为您提供所需的输出,但不能单独获得常规/私有状态。你怎么知道是普通的还是私人的?谢谢。从
td class=“st”
,php代码将生成私有或常规状态。所以
st.text()
将决定这一点。请帮帮我。请看fiddlehttp://jsfiddle.net/4w7yeawx/1/So 每个
.ps
前面都会有一个
.st
。你想要一个基于这个值的数组吗?
var texts = $.map($('.ps'), function(el) { return $(el).text(); }); 
console.log(texts);
var texts_private = $.map($('td.st:contains("Private") + td'), function (el) {
    return $(el).text();
});
var texts_regular = $.map($('td.st:contains("Regular") + td'), function (el) {
    return $(el).text();
});
console.log(texts_private, texts_regular);
["I", "D", "CP"] ["II", "III", "III"]