Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите нубу с регуляркой! (https://javascript.ru/forum/misc/82144-pomogite-nubu-s-regulyarkojj.html)

ksa 20.03.2021 17:18

Цитата:

Сообщение от voraa
Ну если как \s обозначить только пробел

Вместо этого можно указать явно пробельный символ в 16-тиричном счислении или utf-8...

рони 20.03.2021 17:21

voraa,
проверь

str = str.replace(/^\s+?(?=\t+\s+?\S)/mig, '')

voraa 20.03.2021 17:51

рони,
не. Совсем не работает

const r = /^\s+?(?=\t+\s+?\S)/mig
console.log([...'\n\t \n\t\t Журнал'.replace(r, '')])
console.log([...' \t \t\tЖурнал'.replace(r, '')])

Первый вывод дает
[" ", " ", "Ж", "у", "р", "н", "а", "л"]
А должен перед Ж оставить \t\t и пробел
Второй вывод дает
[" ", " ", " ", " ", "Ж", "у", "р", "н", "а", "л"]
А должен перед Ж оставить \t\t

рони 20.03.2021 18:10

voraa,
console.log("\n\t \n\t\t Журнал".replace(/^\s*?(?=\t+\s?\S)/mig, '').replace(/\t/mig, 'T'))
console.log(" \t \t\tЖурнал".replace(/^\s*?(?=\t+\s?\S)/mig, '').replace(/\t/mig, 'T'))
console.log("\t\tЖурнал".replace(/^\s*?(?=\t+\s?\S)/mig, '').replace(/\t/mig, 'T'))
const r = /^\s*?(?=\t+\s?\S)/mig
console.log([...'\n\t \n\t\t Журнал'.replace(r, '')])
console.log([...' \t \t\tЖурнал'.replace(r, '')])

voraa 20.03.2021 18:30

<body>
<pre>
<script>
const rs = /^\s+?(?=\t+\s+?\S)/mig
let s2 = '\n\t \n\t\t Журнал' 
document.writeln(s2.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s3 = '\n\t\n\t\tЖурнал' 
document.writeln(s3.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s4 = ' \t \t\tЖурнал' 
document.writeln(s4.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
</script>
</pre>
</body>


У меня выводит
TSЖурнал
TTЖурнал
TSTTЖурнал

https://drive.google.com/file/d/19ta...F8GPwmNLC/view
Бред какой то.

рони 20.03.2021 18:49

voraa,
#14
TTSЖурнал
TTЖурнал
TTЖурнал

рони 20.03.2021 18:53

voraa,
<pre>
<script>
const rs = /^\s*?(?=\t+[ ]*\S)/mig;
let s2 = '\n\t \n\t\t      Журнал'
document.writeln(s2.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s3 = '\n\t\n\t\tЖурнал'
document.writeln(s3.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s4 = ' \t \t\tЖурнал'
document.writeln(s4.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
</script>
</pre>

voraa 20.03.2021 18:56

Вот я и говорю, что бред.
Пост 14.
Что в форумском варианте, что локально делаю, все равно

TSЖурнал
TTЖурнал
TSTTЖурнал

Хоть в запой уходи.

Не заметил сразу, что исправлено на [ ].
Так вроде работает!
Но еще попроверяю.

рони 20.03.2021 19:04

voraa,
#17 скопируй строку 3, может поможет? )))

voraa 20.03.2021 19:19

рони,
Предыдущие примеры сработали
Дальше опять неудача
Цитата:

Сообщение от voraa
<начало> - последовательность из пробелов, \n, \t (необязат. часть)
<табуляции> - последовательность только из \t (необязат. часть)

Ну нуб я в регулярках
<pre>
<script>
const rs = /^\s+?(?=\t+[ ]*?\S)/mig

let s5 = ' \t \n Журнал' 
document.writeln(s5.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s6 = '\t\tЖурнал' 
document.writeln(s6.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
</script>
</pre>


Часовой пояс GMT +3, время: 19:03.