javascript - 如果字符串的任何变体在 URL 中匹配,则返回 true

标签 javascript jquery arrays regex if-statement

我在网址中有这些可能的文件夹名称:

firstname+lastname
firstname-lastname
firstname lastname
Firstname+Lastname

我需要一种方法来捕获这些,常见元素是名字和姓氏(所以我不关心 + - 或空格),但我确实需要将它们转换为 toLowerCase();

这可以用正则表达式来完成吗? (我对正则表达式的使用并不是特别熟练,我可以使用基本的 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] 姓氏。

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

关于javascript - 如果字符串的任何变体在 URL 中匹配,则返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29143693/

相关文章:

javascript - 间接单击提交按钮不会设置 $_POST ['submit' ]

c - 总线错误 10,结构内有二维结构数组

java - 如何验证字符串数组是否按字母顺序排序或不使用 java?

javascript - 将服务注入(inject) Ember 实用程序

javascript - Jquery Datatables - 使整行成为一个链接

javascript - 如何使用 jquery 添加/删除图像?

javascript - 失去JS功能

c++ - 尝试将文件写入数组时运算符 << 出错

javascript - 我们可以使用参数对象集合而不是原始数据来调用 JavaScript collection.reduce() 方法吗?

javascript - 为什么 "current in mailArchive"应该成为关闭的条件?