[英]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.