>verify(/.../,
> ["my car", "bad cats"],
> ["camper", "high art"]);
>verify(/.../,
> ["pop culture", "mad props"],
> ["plop"]);
>verify(/.../,
> ["ferret", "ferry", "ferrari"],
> ["ferrum", "transfer A"]);
>verify(/.../,
> ["how delicious", "spacious room"],
> ["ruinous", "consciousness"]);
>verify(/.../,
> ["bad punctuation ."],
> ["escape the dot"]);
>verify(/.../,
> ["hottentottententen"],
> ["no", "hotten totten tenten"]);
>verify(/.../,
> ["red platypus", "wobbling nest"],
> ["earth bed", "learning ape"]);
>function verify(regexp, yes, no) {
> // Ignore unfinished exercises
> if (regexp.source == "...") return;
> yes.forEach(function(s) {
> if (!regexp.test(s))
> console.log("Не нашлось '" + s + "'");
> });
> no.forEach(function(s) {
> if (regexp.test(s))
> console.log("Неожиданное вхождение '" + s + "'");
> });
>}
Допустим, вы написали рассказ, и везде для обозначения диалогов использовали одинарные кавычки. Теперь вы хотите заменить кавычки диалогов на двойные, и оставить одинарные в сокращениях слов типа aren’t.
Придумайте шаблон, различающий два этих использования кавычек, и напишите вызов метода >replace
, который производит замену.
Последовательности цифр можно найти простой регуляркой >/\d+/
.
Напишите выражение, находящее только числа, записанные в стиле JavaScript. Оно должно поддерживать возможный минус или плюс перед числом, десятичную точку, и экспоненциальную запись >5e-3
или >1E10
– опять-таки с возможными плюсом или минусом. Также заметьте, что до или после точки не обязательно могут стоять цифры, но при этом число не может состоять из одной точки. То есть, >.5
или >5
. – допустимые числа, а одна точка сама по себе – нет.
>// Впишите сюда регулярку.
>var number = /^...$/;
>// Tests:
>["1", "-1", "+15", "1.55", ".5", "5.", "1.3e2", "1E-4",
> "1e+12"].forEach(function(s) {
> if (!number.test(s))
> console.log("Не нашла '" + s + "'");
>});
>["1a", "+-1", "1.2.3", "1+1", "1e4.5", ".5.", "1f5",
> "."].forEach(function(s) {
> if (number.test(s))
> console.log("Неправильно принято '" + s + "'");
>});