我正在尝试找出符合以下条件的正则表达式。
我要匹配的字符串
var txt = "This is Regex";
用户可以输入如下内容
- “这个”——有效
- “Th”——有效
- “这是”——有效
- “这是 Reg”——有效
- “这是正则表达式”——有效
- “Tis”——无效
- "is"——无效
- “注册”——无效
因此用户可以输入部分文本或全文。
如果用户输入部分文本,它应该验证序列,如果它与txt
序列不匹配,那么它是无效的。
我正在寻找使用 jQuery 的解决方案,但即使是纯 JavaScript 也可以。
只是为了澄清我的要求,我给出了 7 个以上的 senarios,并不是只有用户可以输入 7 个以上(例如:- 如果用户输入“T”,那么它也是有效的,因为它是第一个字符,如果用户只输入“H”是无效的,因为它前面没有“T”
最佳答案
不需要正则表达式,甚至不需要 jQuery——只需测试并查看用户输入的内容是否是您文本的子字符串:
function isMatch(userTxt) {
return txt.indexOf(userTxt) != -1;
}
(如果字符串中不存在用户文本,则调用 indexOf
将返回 -1,因为字符串中不存在子字符串。)
如果用户输入的字符串必须从txt
的开头开始,您可以更明确地检查返回的索引是否恰好为0:
function isMatch(userTxt) {
return txt.indexOf(userTxt) == 0;
}
关于javascript - 用于匹配 JavaScript 中字符串的全部或初始部分的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25840438/