如果URL中有任何字符串变体匹配,则返回true
Return true if any variation of strings matches in URL
我在一个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]
应包含姓氏。
正则表达式的作用是匹配+
、-
或之前的每个字母,以及匹配后面的每个字母。
相关文章:
- 对于loop.if-仅在经过所有间隔后返回true
- 如果函数返回True,则显示Javascript按钮
- Javascript If else 只返回 TRUE 或只返回 FALSE
- 过滤器返回true或false
- 我对“;返回true"嵌套函数内部;t工作
- 如何在成功输入时使“返回TRUE”
- 检查一个元素是否有一个类与另一个类总是返回true
- 通过AJAX从具有LazyLoadingEnabled=true的EF返回的数组不正确
- JavaScript函数未返回true
- 如果URL中有任何字符串变体匹配,则返回true
- 使用!而in运算符在应该为true时返回false,为什么
- 如何使以下函数返回true或false
- 为什么 javascript 返回对象位置 true 或 false
- 使用“in”关键字检查 0 始终返回 true
- hasOwnProperty 在对照父对象属性进行检查时返回 true
- 为什么 1.2 == true 返回 false 如果布尔值 (1.2) 实际上是真的
- Backbone.js集合.Create函数没有使用wait: true返回更新后的模型
- Sequelize:调用.get({plain: true}))返回.get不是函数
- 在if语句中为true, true返回false
- 固定脚和外高度(true)返回值