如果URL中有任何字符串变体匹配,则返回true

Return true if any variation of strings matches in URL

本文关键字:true 返回 URL 任何 字符串 如果      更新时间:2023-09-26

我在一个url中有以下可能的文件夹名称:

firstname+lastname
firstname-lastname
firstname lastname
Firstname+Lastname

我需要一种方法来捕捉这些,常见的元素是firstname和lastname(所以我不在乎+-或空格),但我确实需要将它们转换为toLowerCase();

这可以用正则表达式完成吗?(我对regex的使用不是特别复杂,我可以使用基本的match()函数。

我的另一个想法是将这些变体存储在一个数组中,如果其中任何一个项与数组中的一个项匹配,则返回true。

我正在研究这个解决方案:http://snook.ca/archives/javascript/testing_for_a_v

在这种情况下,我认为我的数组和语句看起来像这样:

var strArray = ['firstname','lastname'];
strArray.toLowerCase();
var href = document.location.href;
var secondaryDir = href.split("/")[4];
if (secondaryDir in strArray){
  console.log('Its true!');
  // do magic here 
}

不确定是否有更好的方法来测试这一点?

(我已经用jquery标记了这个问题,因为这就是我正在使用的,尽管我认为这里所有的代码都是香草js)。

编辑

事实上,我不需要担心将数组转换为小写,因为我可以对secondaryDir变量执行此操作(我认为)。

以下是该问题的正则表达式解决方案:

var pattern = '/([a-zA-Z]*)['+'- ]([a-zA-Z]*)/';
var matches = pattern.exec(text);

其中text是包含名字和姓氏的字符串。matches[1]应包含名字,matches[2]应包含姓氏。

正则表达式的作用是匹配+-之前的每个字母,以及匹配后面的每个字母。