我需要一个允许在输入中输入所有语言字母和特定字符列表的正则表达式,如下所示:
此字段只能包含字母字符、数字、空格和 _-()[]{},~.;:'"/?#=$%<>@!
我正在为此使用 XRegexp - https://github.com/slevthan/xregexp库
到目前为止,这是我的正则表达式
export const INPUT_VALIDATOR_REGEXP = new XRegExp(
"^[0-9\\p{L} _.&@<>!_\\](){}\\[,\\/\\-.;#=$%:~'\"?+]+$"
);
它的问题是它与下面的语言列表不匹配:
ການທົດສອບ - Laotian
পরীক্ষা - Bengaleza
စမ်းသပ် - Birman
מִבְחָן - Hebraica
પરીક્ષણ- Gujarati
परीक्षण - Hindi
פּרובירן - Idis
ಪರೀಕ್ಷೆ - Kannada
សាកល្បង - Khmer
പരീക്ഷ - Malayalam
चाचणी - Marathi
परीक्षण - Nepalez
ପରୀକ୍ଷା- Odia
ਟੈਸਟ - Punjabi
පරීක්ෂණය - Singhalez
சோதனை - Tamila
పరీక్ష - Telugu
在这里,我有一个显示当前行为的小提琴 - https://jsfiddle.net/cro86wt0/
解决方案:
我最终根据@Tom 的回答编写了这个正则表达式:
"^[0-9\p{L} \u0a00-\u0a7e\u0b00-\u0b7e\က-႞\u0590-\u05fe\u0980-\u09fe\u0e80-\u0efe\u0a80-\u0afe\u0900-\u097F\u0c80-\u0cfeក-\u17fe\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60\u0D61\u0D66-\u0D6F\u0d80-\u0dfe\u0b80-\u0bfe\u0c00-౾_.&@<>!_\](){}\[,\/\-.;#=$%:~'"?+]+$