如何检查字符串是否[a-zA-Z]仅包含字符?
例:
var str = '123z56';
Answers:
无需jQuery
if (str.match(/[a-z]/i)) {
// alphabet letters found
}
match(/[a-z]/i)会回来true还是false?什么是i在它的中间呢?
i标志不区分大小写。该match函数返回匹配项的数组。如果没有匹配项,它将返回一个空数组,该数组等于false(只要您未使用三元等号。)
令我惊讶的是,当他们都没有真正回答问题时,这里的答案获得了如此多的赞誉。这是确保给定字符串中仅包含拉丁字符的方法。
const hasOnlyLetters = !!value.match(/^[a-z]*$/i);
在!!需要转换的东西,这不是布尔成一个布尔值。(这与应用!两次完全相同,实际上,您可以使用任意多次!切换真实性的方法。)
至于正则表达式,这是细分。
/.../i分隔符是a,/并且是i不区分大小写的方式评估语句的方法。^...$的^手段来看看一开始一个字符串。的$手段来看看字符串的结尾,并一起使用时,就意味着要考虑整个字符串。您可以在这些边界之外向RegEx添加更多功能,例如添加/添加所需的后缀或前缀。[a-z]*这部分说要查找所有小写字母。(不区分大小写的修饰符意味着我们也不必查看大写字母。)*末尾表示我们应该将括号中的内容匹配任意次。这样,“ abc”将匹配,而不仅仅是“ a”或“ b”,依此类推。所有这些答案都是正确的,但是我还必须检查字符串是否包含其他字符和希伯来字母,因此我只使用了:
if (!str.match(/^[\d]+$/)) {
//contains other characters as well
}