对于我的搜索面板,我必须过滤如下所示的字符串:
'4dan-7kyu' or '4dan - 7kyu' or '10kyu' or '10 kyu' or '2dan' or '2 dan' or '4-7' or '4 - 7' or '10'
仅允许:
- 数字来自
1-10
; - 不区分大小写的单词包括:
dan
,kyu
,дан
,кью
; - 破折号(不超过一个并且从不在字符串的开头,从不
-10kyu
或从不-10
); - 空格(不超过一次,但从不在字符串的开头);
我正在考虑这样的事情,但它从未对我完全有效:
/([1-9]|10)\s-\s|dan|kyu|дан|кью/i
拧这种正则表达式的正确方法是什么?
编辑1:
- 空格(不超过一次,但从不在字符串的开头)
无效示例:4dan___-___7kyu
或_4dan_-_7kyu
有效示例:4dan-7kyu
and4dan - 7kyu
和4 dan - 7kyu
and4 dan - 7 kyu
编辑2:
更多无效示例:
12dan-7kyu
或12dan-11kyu