Я использовал метод замены со следующим регулярным выражением для удаления точек в конце строки: replace(/\.[^/.]+$/, "");
. Теперь я хочу изменить это, чтобы соответствовать следующим требованиям:
- не может заканчиваться точкой,
- не может содержать только пробелы
- не может содержать следующие символы: \ / * ? " | : < >
Есть ли способ включить два других правила в мое правило, которое уже удаляет точку?
2 ответа
s = s
.replaceAll(/\s/g, '')
.replaceAll(/[\\/*?"|:<>]/g, '')
.replace(/\.+$/, '')
Используйте это комбинированное регулярное выражение, которое будет соответствовать всем вещам, которые вы хотели бы исключить: /\.+$|\\|\/|\*|\?|\"|\||\:|\<|\>|^\s+$/g
.
Чтобы удалить недопустимые символы из строки, используйте:
s = s.replace(/\.+$|\\|\/|\*|\?|\"|\||\:|\<|\>|^\s+$/g, '')
if (!s) {
// The string is entirely whitespace
}
Если вы просто хотите проверить наличие недопустимых символов, используйте:
if (/\.+$|\\|\/|\*|\?|\"|\||\:|\<|\>|^\s+$/g.exec(s)) {
// The string is invalid
} else {
// The string is valid
}
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.
replace(/\.[^/.]+$/, "");
удаляет точку и все после нее. Например. если у вас есть два предложения в строке, первое с точкой, второе с вопросом, оно удалит второе предложение. Можете ли вы добавить несколько примеров ввода с ожидаемым результатом?