我要检查文本是否包含西里尔字符,如果包含设置最大长度字段最大60个字符,否则设置最大长度170个字符。我尝试了下一个代码:
var _this = this;
var value = el.getValue();
if (value.match(/[^а-яА-ЯёЁ\n0-9,.!():;@&#%+_/\'\" -]/ig) === null) {
_this.getViewModel().set('myMaxLength', 60);
_this.getViewModel().set('length', value.length);
} else if (value.match(/[^a-zA-Z\n0-9,.!():;@&#%+_/\'\" -]/ig) === null) {
_this.getViewModel().set('myMaxLength', 170);
_this.getViewModel().set('length', value.length);
} else {
_this.getViewModel().set('myMaxLength', 60);
_this.getViewModel().set('length', value.length);
}我的代码不能正常工作,因为当法国文本的最大长度设置为60个字符时,需要170个字符。除了西里尔语之外,我怎么允许所有的角色。
发布于 2018-09-19 12:48:26
我在/[^\u0000-\u007f]/上替换了正则表达式,它解决了我的问题。另外,我改变了条件:
if (value.match(/[^\u0000-\u007f]/)) {
_this.getViewModel().set('myMaxLength', 60);
_this.getViewModel().set('length', value.length);
} else {
_this.getViewModel().set('myMaxLength', 170);
_this.getViewModel().set('length', value.length);
}https://stackoverflow.com/questions/52405683
复制相似问题