如何从属性中获取文本,例如正则表达式?

时间:2013-06-28 12:32:20

标签: javascript jquery html

   1. <a class="click" data-test="CodeMirror-sizer('@aaa', 1)-er">
   2. <a class="click" data-test="CodeMirror-sizer44('@bbb', 2)-fgd">
   3. <a class="click" data-test="CodeMirror-sizer366('@ccc', 2)-gr4f">
   4. <a class="click" data-test="CodeMirror-sizer33('@ddd', 1)-erw">

$(".click").click(function(){
    var text = ???;
   alert(text);
})

如何使用例如正则表达式从属性中获取文本? 我会收到:

从1 = @aaa

从2 = @bbb

从3 = @ccc

从4 = @ddd

LIVE jsFIDDLE

4 个答案:

答案 0 :(得分:4)

您可以拆分单引号字符并获取返回的第二个值:

$(".click").click(function(){
    var text = $(this).data('test').split("'")[1];
    alert(text);
});

<强> Working Demo

答案 1 :(得分:2)

$(".click").click(function(){
    var pattern = /@[a-z]{3}/i
    var text = $(this).attr('data-test')

    alert(text.match(pattern ));
})

请参阅此处的小提琴:http://jsfiddle.net/Xr7bw/4/

但这一切都取决于模式,这个只是匹配和“@”后面的三个字符在[az]范围内...如果你可以更准确地说明可能的值,我们可以更多捕获它们的先例

答案 2 :(得分:0)

一种方式:

var text = $(this).data("test");
alert ( text.match(/^.*\('(.*)\s*'/)[1] );

答案 3 :(得分:0)

试试这个

http://jsfiddle.net/Xr7bw/5/

$(".click").click(function(){
    var tag = $(this);
   alert(tag.attr('data-test').split('\'')[1]);
})