我正在尝试编写除了字母外的其他所有匹配的RegExp。到目前为止,我已经写了这样的事情:RegExp,匹配除字母外的所有内容
/[^a-zA-Z]+/
然而,在测试过程中,我发现,它工作得很好,当我写例如:“QWE”或“qqqqqweqwe123123”或类似的东西,但是当我从数字开始String,例如:'1qweqwe',它不匹配。
我还需要做什么才能匹配除了我的输入字符串的任何位置上的字母?
在此先感谢。
编辑:正确的正则表达式,我发现是:
/^[^a-zA-Z]*$/
我正在尝试编写除了字母外的其他所有匹配的RegExp。到目前为止,我已经写了这样的事情:RegExp,匹配除字母外的所有内容
/[^a-zA-Z]+/
然而,在测试过程中,我发现,它工作得很好,当我写例如:“QWE”或“qqqqqweqwe123123”或类似的东西,但是当我从数字开始String,例如:'1qweqwe',它不匹配。
我还需要做什么才能匹配除了我的输入字符串的任何位置上的字母?
在此先感谢。
编辑:正确的正则表达式,我发现是:
/^[^a-zA-Z]*$/
What do I have to do yet to match everything except letters at any position of my input String?
。
你需要使用正则表达式标志来实现这个
试试这个
'1qwe2qwe'.match(new RegExp(/[^a-zA-Z]+/g))
应该在正则表达式的最后返回["1", "2"]
的g
标志告诉正则表达式引擎之后保持遍历字符串它找到了一场比赛。如果没有g
标志,它会在找到第一个匹配时放弃遍历。您可以找到参考here
您的解决方案对我无效。我发现正确的RegExp是这样的:/^[^ a-zA-Z] * $ / – kmb
您的正则表达式未被锚定,所以对于部分匹配,它将产生true
。如果整个字符串不应当包含字母:
if (/^[^a-zA-Z]+$/.test(str)) {
// all characters are not alphabetical
}
或者说,如果所有的字符必须是数字(或空字符串):
if (/^\d*$/.test(str)) {
// all characters are digits
}
'/ [^ A-ZA-Z] + /。测试('1qweqwe')'产生'true'。 –
@Jack此解决方案对我无效。我找到了正确的RegExp,像这样:/^[^ a-zA-Z] * $/ – kmb