我在网上找到了许多正则表达式匹配第一次出现的字符串、某个字符、一个单词等的解决方案,但我还没有找到匹配第一次出现的一组字符的解决方案(或者在我的情况下,不匹配一组字符)。
例如,我有一个如下字符串(在 javascript 中):
var testString = '~!@#$%^&*()_+|}{POIUYTREWQ":?><asdfghjklm,./;[]\=-0987654321`~!@#$%^&*()_+|}{POIUYTREWQ":?><asdfghjklm,./;[]\=-0987654321`~!@#$%^&*()_+|}{POIUYTREWQ":?><asdfghjklm,./;[]\=-0987654321`'
如您所见,testString 中有很多很多很多奇怪的字符。
我提出了一个正则表达式匹配来向我展示哪些是违规字符,如下所示:
var regTest = /[^A-Za-z0-9.,?()@\[\]\-\/ ]/g;
var wrongChar = testString.match(regTest);
现在,我的问题是,即使 wrongChar 很好地返回了一个不匹配字符的数组,它也会给我每次出现的字符,如下所示:
~,!,#,$,%,^,&,*,_,+,|,},{,",:,>,<,;,\,=,`,~,!,#,$,%,^,&,*,_,+,|,},{,",:,>,<,;,\,=,`,~,!,#,$,%,^,&,*,_,+,|,},{,",:,>,<,;,\,=,`
有没有办法让我快速地只第一次出现每个不需要的字符(例如更改我的正则表达式),或者我是否必须创建 2 个数组来继续测试一个字符是否已经保存在 wrongChar(长方法)?