Начиная с ECMAScript 2018, JavaScript, наконец, поддерживает свойство Unicode escapes изначально.
Для более старых версий вам необходимо либо определить все соответствующие диапазоны Unicode. Или вы можете использовать пакет XRegExp
Стивена Левитана с юникодными надстройками и использовать его ярлыки свойств Unicode:
var regex = new XRegExp("^\\p{L}*$")
var a = "abcäöüéèê"
if (regex.test(a)) {
// Match
} else {
// No Match
}
Некоторые операторы применяют унарное числовое преобразование к одному операнду, который должен создавать значение числового типа, а если операнд имеет тип времени байта, короткий или char, он переводится в значение типа int с помощью расширяющееся примитивное преобразование (§5.1.2).
String TYPE = "type";
long TOTAL_MASK = 0xFFFFFFFF;
long BASE_INBOX_TYPE = ~20; // (~)promotion to int first (not necessary)
long BASE_TYPE_MASK = 0x1F;
long type = (TOTAL_MASK - BASE_TYPE_MASK) | BASE_INBOX_TYPE;
System.out.println(type);
Integer.valueOf(String)
используется для анализа числового литерала из текста, а не для оценки произвольного выражения. Согласно методу javadoc:
Аргумент интерпретируется как представляющий десятичное целое число со знаком, точно так же, как если бы аргумент был передан методу
blockquote>parseInt(java.lang.String)
.Вам необходимо написать выражение в виде кода, например :
long type = (TOTAL_MASK - BASE_TYPE_MASK) | BASE_OUTBOX_TYPE;