繁体   English   中英

使用Javascript过滤字符串中的正则表达式

[英]Filtering a regular expression in string with Javascript

我有一个javascript字符串,其中包含一些我希望过滤的联系信息。 例如,如果写入电子邮件或电话,则应使用掩码替换这些电子邮件或电话。

我想尝试做类似的事情:

function(message) {
            var filteredMessage = message.replace("/^([\da-z_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/", "<Email>");
            return filteredMessage;
        }

但这不起作用。

尝试这个:

function filterMessage(message) {
    //var reg = /^([\da-z_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
    var reg = /\b(\S+@\S+\.\S+)\b/g;
    var filteredMessage = message.replace(reg, "<Email>");
    return filteredMessage;
}

filterMessage("email.example.com will be replaced, so will be next@example.com");

或者您可以使用此regExp:/ /\\b(\\S+@\\S+\\.\\S+)\\b/g (\\S+@\\S+\\. /\\b(\\S+@\\S+\\.\\S+)\\b/g S+)\\b/ /\\b(\\S+@\\S+\\.\\S+)\\b/g (来自Kieran Pot的答案),然后您可以使用您的函数进行更好的过滤。

我更喜欢使用非常宽松的正则表达式来搜索电子邮件地址,因为电子邮件地址的格式有很多变化。 你可以尝试,例如:

/\S+@\S+\.\S+/   

这将匹配@ bc,其中允许一个或多个非空白字符代替a,b和c。

您可以使用它代替strah的答案中的正则表达式,刚刚发布。

你可以试试这个:

function filterMessage(message) {
        var m = message.replace(/[\da-z_\.-]+@[\da-z\.-]+\.[a-z\.]{2,6}/, "<Email>");
        return m;
    }


alert(filterMessage("Your Email: bla@fasel.de lorem Ipsum dolor"));

在这里工作小提琴: http//jsfiddle.net/ochxdkam/

脚本问题:

  • 没有功能名称
  • 正则表达式" ,必须没有

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM