我想知道是否有人可以提供JavaScript RegEx语句来过滤输入框中所有#tags中的文本。
场景:我有一个用户输入文本框,用户可以在其中输入多个#tags。我想要做的是在删除特殊字符后将所有文本过滤掉并存储在数组中,然后通过循环遍历数组将其保存到数据库中。
示例:输入 - #tag1,#tag2,#tag3 ...
输出:[tag1,tag2,tag3 ...]
的数组提前致谢..
答案 0 :(得分:0)
这是一个问题的地方,而不是让你有代码的人。但我仍然会回答。
(\s?#[a-zA-Z0-9]+,?)+
- 由可选的空格和可选逗号分隔 - 确保在返回值的开头和结尾处修剪空白区域(循环时) - 也删除哈希标记(修剪后的第一个字符) - 链接您的示例https://regex101.com/r/rT2aC5/1
编辑:也不包含特殊字符。如果您需要进行特殊修改,请告诉我,我会尽快为您完成:)
答案 1 :(得分:0)
简单地使用:
/(#\w+)+/gmi
在正则表达式匹配列表中,您将拥有数组中的所有标记。此表达式仅支持字母,数字和下划线 - 如果要扩展或限制字符集,只需调整\w
。
这是一个regex101来玩:https://regex101.com/r/pJ8vA4/2
javascript看起来像:
var string = '#tag1, #tag2, #tag3 some other stuff #tag4';
var tags = string.match(/(#\w+)+/gmi);
tags = result.map(function(tag) { return tag.replace('#', '') });
console.log(tags);
答案 2 :(得分:0)
var input = "#tag1, #tag2, #tag3";
var regex = new RegExp(/#(\w+),?\s?/gi);
var match = null;
var results = [];
while (match = regex.exec(input)){
results.push(match[1]);
}
这将为您提供一个结果数组:[" tag1"," tag2"," tag3"]