我不擅长RegEx。尽管实现起来似乎很简单,但是我无法找出匹配任何字符后跟数字的方法。我正在尝试负面的前瞻。如果我使用任何单词,它都能按预期工作,但是如果我尝试将任何字符与方括号匹配,则失败。
var pattern = /sample(?!\d)/;
console.log(pattern.test("sample324")); //false
var pattern = /[a-z]+(?!\d)/;
console.log(pattern.test("sample324")); //true but expect false
谢谢。
答案 0 :(得分:5)
问题是[a-z]+(?!\d)
将使其与任何1+字符而不是数字相匹配,因此它将与您输入中的sampl
匹配,从而在下一个位置满足非数字断言。
您可以在负前瞻的情况下使用此正则表达式:
/^(?!.+\d)/
如果在输入的任何字符后1个数字出现在输入的任何位置,则将导致匹配失败。
为获得更好的效率,您也可以使用此正则表达式:
/^(?!\D+\d)/
如果输入中有1个以上的非数字后跟数字 ,则会失败。
答案 1 :(得分:0)
我认为这可能有效:
var pattern = /[^0-9]/.test('mystring9')