【问题标题】:How to identify if a a regular expression is null or not inside a script?如何识别脚本中的正则表达式是否为空?
【发布时间】:2015-10-24 19:26:00
【问题描述】:

我正在跟踪坏词,如果用户当前键入时它存在于评论中,则将其替换为 ***。但我想在打字时确定它是否替换。如果是这样显示一个 div 标签。我已经完成了跟踪部分并显示了 div 标签,但我不明白如何识别它是否替换了这个词。请帮我更改我的代码

       <script>
        function fbws(text){
        var getWord = document.getElementById(text);
        var regex1 = /(dam|hell)/;
        var clean1 = getWord.value.replace(regex1, "****");


        getWord.value = clean1;
        if(//the condition I want to know){
//ifi it is a bad word then show div tag
     $("#wordTraker").slideToggle(300);
    }


        }
        </script>

【问题讨论】:

  • 如果您需要替换评论中的所有坏词,请将g 修饰符附加到正则表达式:var regex1 = /(dam|hell)/g;
  • 小心……正则表达式会弄乱"hello I am a damsel in distress"并将其变成"****o I am a ****sel in distress"
  • 感谢您的帮助。我刚得到我的答案

标签: javascript php jquery regex


【解决方案1】:

如果初始字符串不等于修改,则其中有一个坏词:

var clean1 = getWord.value.replace(regex1, "****");

if (clean1 !== getWord.value) {
    getWord.value = clean1;
    //ifi it is a bad word then show div tag
    $("#wordTraker").slideToggle(300);
}

【讨论】:

  • 哦,非常感谢您..这非常有效..谢谢您... :)
【解决方案2】:

在将getWord.value的值更改为clean之前,可以检查两者是否相同,如果相同则没有坏词。

或者您可以使用match() 来检查是否有坏词。如果它返回null,则没有文字。但是,如果您不需要替换的单词,则它不会很有用。

正如 cmets 中所述,您的正则表达式可能会给出不正确的结果,您还应该检查单词边界。这样的东西会更好,

/\W+(damn/Hell)\W+/gi

【讨论】:

  • 感谢您的帮助.. 我刚刚得到了我的答案
猜你喜欢
  • 2011-10-02
  • 2013-06-12
  • 1970-01-01
  • 2019-01-06
  • 1970-01-01
  • 1970-01-01
  • 2017-08-20
  • 2014-12-20
  • 1970-01-01
相关资源
最近更新 更多