JQUERY - 如果元素的当前值以!!!结尾,则触发警报

时间:2010-07-20 04:22:29

标签: javascript jquery regex

鉴于:

var value = $this.text();

其中价值等于:在绿色中的Phasellus pellentesque metus。 Praesent euismod scelerisque diam。 Morbi erat turpis,lobortis in,consequat nec,lacinia sed,enim。 Curabitur nisl nisl,consectetuer ac,eleifend a,condimentum vel,sem。

当用户键入时:其中值等于:在nulla中的Phasellus pellentesque metus。 Praesent euismod scelerisque diam。 Morbi erat turpis,lobortis in,consequat nec,lacinia sed,enim。 Curabitur nisl nisl,consectetuer ac,eleifend a,condimentum vel,sem。!!!

3 !!!

我希望JavaScript能够提醒,允许我调用不同的函数。

我正在尝试使用:

if (/!!!$/.test(value)) {} but that doesn't seem to be working.

想法?

3 个答案:

答案 0 :(得分:1)

看起来\n之后有一个!!!。使用/m标志来制作正则表达式多行。

if (/!!!$/m.test(value)) {
    console.log("it works");
} 

检查一下:

var s = "When the user tl, sem.The 3 !!!";

if (/!!!$/m.test(s)) 
    console.log("multiline matches");   //prints

if (/!!!$/.test(s)) 
    console.log("single line matches"); //prints

s += "\n";

if (/!!!$/m.test(s)) 
    console.log("multiline matches");   //prints

if (/!!!$/.test(s)) 
    console.log("single line matches"); //doesn't print

答案 1 :(得分:0)

这段代码会注意到你转换为jquery对象的工作不对,请使用以下

var value = $(this).text();

答案 2 :(得分:0)

$这并不是指自我。 $(this)指的是self。所以应该是这样的:

var value = $(this).text();

完整的例如:

<body>
    <p>hello!!!</p>
    <p>done</p>
</body>
<script>
    $(document).ready( function()
    {
        $("p").click( function()
        {
            var value = $(this).text();
            if (/!!!$/.test(value)) { msg = 'done';}else{ msg = 'not done';}
            alert(msg);
        });
    });
</script>