【发布时间】:2017-06-23 01:12:33
【问题描述】:
好的,所以我知道如何执行标准循环来遍历字符串以查找与单个字符或单词匹配的字符或单词,但在这种情况下,我有多个要查找的字符集。有些是字母,有些是字符(包括受保护的字符)。我无法将其拆分为空格或类似的单词数组,因为字符集可能没有空格,因此不会拆分。我怀疑我将不得不做一个正则表达式,但我不知道如何设置它。这基本上是我正在尝试做的伪代码,我将不胜感激有关如何前进的任何提示。如果这是一件容易的事情并且我错过了它,我深表歉意,我仍在研究我的 javascript。
伪代码:
var string = "This *^! is abdf random&!# text to x*?ysearch for character sets";
var tempSet = [];
// start a typical for loop
for(string.length bla bla...){
// look for one of those four character sets and if it hits one
if(foundSet == "abdf" | "x*?y" | "*^!" | "&!#")
// push that character set to the tempSet array
tempSet.push(foundSet);
// continue searching for the next set until the string is done
console.log(tempSet);
//expected result = ["*^!", "abdf", "&!#", "x*?y"]
并且所有的集合都按照它们在字符串中出现的顺序排列在数组中
显然还有更多,但那部分我可以处理。就是这一行
if(??? == "abdf" | "x*?y" | "*^!" | "&!#")
我真的不知道如何解决。我怀疑它应该是某种正则表达式,但你能有一个像 | 那样的正则表达式吗?做if语句的时候?我用 | 完成了它们在进行映射/替换时,但我从未在循环中使用过正则表达式。我也不知道如何让它一次搜索多个字符。有些字符集是 3 个字符,有些是 4 个字符长。
如果您对如何以更简单的方式解决此问题有任何建议,我将不胜感激。
谢谢!
【问题讨论】:
标签: javascript regex string loops