0

我在我的 div 中显示了几个项目列表。我可以有这种格式的字符串数据。例如:12H-912

这里 12(前 2 位数字)代表年份的最后两个字符。(例如:2012 它将是 12)并且“H”代表月份。(对于 jan - “A”,feb - “B”.. Aug - “ H”)。“-”后面的9代表月份中的第几天。和 12(最后两个字符代表我生成的主键。这可以是任何字符,而不仅仅是两个我的意思是它可以是 2 或 1223 或 232323 ..)。

现在在 jquery 中,我想找到这种格式的字符串,并且我想将其作为超链接,并在其中调用一些函数。任何人都可以帮助找到解决方案。

4

2 回答 2

0

您可以使用以下正则表达式来查找完全匹配

"12H-912".match(/^\d{2}[A-Z]\-\w+$/)
于 2012-08-09T11:11:57.967 回答
0

工作数据:

<div>this is a div with 12H-912</div>
<table>
    <tr><td>7H-9123123</td></tr>
    <tr><td>08A-912234</td></tr>    
    <tr><td>08132A-912234</td></tr>    
</table>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

Javascript:

$('body').ready(function(){
    $('div').each(function(){
        var html = $(this).html();
        if (html.match(/[0-9]{2}[A-H]{1}-[0-9]+/g)) {
            $(this).html(html.replace(/([0-9]{2}[A-H]{1}-[0-9]+)/g, '"$1"')); 
        }
    });

    // easier and safer when in a td (alone)
    $('td').each(function(){
        var html = $(this).html();
        if (html.match(/^[0-9]{2}[A-H]{1}-[0-9]+$/g)) {
            $(this).html(html.replace(/([0-9]{2}[A-H]{1}-[0-9]+)/g, '"$1"'));         
        }
    });
});​​​​​

​ 输出:

this is a div with "12H-912"
7H-9123123
"08A-912234"
08132A-912234

我会让你算出超链接。你可以在这里摆弄它:http: //jsfiddle.net/fCJJb/

于 2012-08-09T11:35:33.890 回答