Autor | Zpráva | ||
---|---|---|---|
Gray blogger Profil * |
#1 · Zasláno: 6. 9. 2019, 11:02:56
Věděl by někdo jak dosáhnout následujícího?
Mám např. takovýto řetězec: Jeremiah 31:31 הִנֵּה יָמִים בָּאִים נְאֻם־יְהוָה וְכָרַתִּי אֶת־בֵּית יִשְׂרָאֵל וְאֶת־בֵּית יְהוּדָה בְּרִית חֲדָשָֽׁה׃ 32 לֹא כַבְּרִית אֲשֶׁר A čeho chci dosáhnout, aby se ještě před provedením toho příkazu na posledním řádku nejdříve doplnily závorky {} tam, kde znaky jsou v rozsahu definovaném pomocí regexu alpnum. Takže změna textu by měla vypadat (asi) takto*: { Jeremiah 31:31} הִנֵּה יָמִים בָּאִים נְאֻם־יְהוָה וְכָרַתִּי אֶת־בֵּית יִשְׂרָאֵל וְאֶת־בֵּית יְהוּדָה בְּרִית חֲדָשָֽׁה׃ {32} לֹא כַבְּרִית אֲשֶׁר * - respektive { Jeremiah 31:31 } nejde mi to sem korektně napsat. String.prototype.splitFirst = function () { let alpnum = /[\u1-\u0589, \u05F3-\uFB19, \uFB50-\u10FFFF]/; if (comments.checked && alphanum.checked) { } return this.match(/\{[^{]*\}|[^ ]+/g); }; Ještě bych to zkusil vysvětlit jinak. Pokud bych regex zjednodušil na \w v podstatě bych nahrazoval \w+ za {\w+} |
||
Kajman Profil |
#2 · Zasláno: 6. 9. 2019, 12:40:19
Gray blogger:
„Pokud bych regex zjednodušil na \w v podstatě bych nahrazoval \w+ za {\w+}“ 'text'.replace(/(\w+)/g,'{$1}') |
||
Gray blogger Profil * |
#3 · Zasláno: 6. 9. 2019, 13:21:54
OK, díky. Už to skoro chápu až na jeden detail.
a toto je moje funkce: text='Jeremiah 31:31 הִנֵּה יָמִים בָּאִים נְאֻם־יְהוָה וְכָרַתִּי אֶת־בֵּית יִשְׂרָאֵל וְאֶת־בֵּית יְהוּדָה בְּרִית חֲדָשָֽׁה׃ 32 לֹא כַבְּרִית אֲשֶׁר כָּרַתִּי אֶת־אֲבֹותָם בְּיֹום הֶחֱזִיקִי בְיָדָם לְהֹוצִיאָם מֵאֶרֶץ מִצְרָיִם אֲשֶׁר־הֵמָּה הֵפֵרוּ אֶת־בְּרִיתִי וְאָנֹכִי בָּעַלְתִּי בָם נְאֻם־יְהוָֽה׃ 33 כִּי זֹאת הַבְּרִית אֲשֶׁר אֶכְרֹת אֶת־בֵּית יִשְׂרָאֵל אַחֲרֵי הַיָּמִים הָהֵם נְאֻם־יְהוָה נָתַתִּי אֶת־תֹּֽורָתִי בְּקִרְבָּם וְעַל־לִבָּם אֶכְתֲּבֶנָּה וְהָיִיתִי לָהֶם לֵֽאלֹהִים וְהֵמָּה ' String.prototype.splitAndReplaceBraces = function () { let alpnum = /([\u1-\u0589, \u05F3-\uFB19, \uFB50-\uFFFF]+)/g; if (comments.checked && alphanum.checked) { return this.replace(alpnum,'{$1}'); } return; }; var textArr = text.splitAndReplaceBraces(); console.log(textArr); Tak dostanu toto: {Jeremiah 31:31 }הִנֵּה{ }יָמִים{ }בָּאִים{ }נְאֻם־יְהוָה{ }וְכָרַתִּי{ }אֶת־בֵּית{ }יִשְׂרָאֵל{ }וְאֶת־בֵּית{ }יְהוּדָה{ }בְּרִית{ }חֲדָשָֽׁה׃{ 32 }לֹא{ }כַבְּרִית{ }אֲשֶׁר{ }כָּרַתִּי{ }אֶת־אֲבֹותָם{ }בְּיֹום{ }הֶחֱזִיקִי{ }בְיָדָם{ }לְהֹוצִיאָם{ }מֵאֶרֶץ{ }מִצְרָיִם{ }אֲשֶׁר־הֵמָּה{ }הֵפֵרוּ{ }אֶת־בְּרִיתִי{ }וְאָנֹכִי{ }בָּעַלְתִּי{ }בָם{ }נְאֻם־יְהוָֽה׃{ 33 }כִּי{ }זֹאת{ }הַבְּרִית{ }אֲשֶׁר{ }אֶכְרֹת{ }אֶת־בֵּית{ }יִשְׂרָאֵל{ }אַחֲרֵי{ }הַיָּמִים{ }הָהֵם{ }נְאֻם־יְהוָה{ }נָתַתִּי{ }אֶת־תֹּֽורָתִי{ }בְּקִרְבָּם{ }וְעַל־לִבָּם{ }אֶכְתֲּבֶנָּה{ }וְהָיִיתִי{ }לָהֶם{ }לֵֽאלֹהִים{ }וְהֵמָּה{ } Což je skoro OK, ale nevíš jak vzniklo to za číslem 31 je dvakrát } a na konci je dvakrát { a jak by se to teda dalo opravit abych měl toto? {Jeremiah 31:31 הִנֵּה{ }יָמִים{ }בָּאִים{ }נְאֻם־יְהוָה{ }וְכָרַתִּי{ }אֶת־בֵּית{ }יִשְׂרָאֵל{ }וְאֶת־בֵּית{ }יְהוּדָה{ }בְּרִית{ }חֲדָשָֽׁה׃{ 32 }לֹא{ }כַבְּרִית{ }אֲשֶׁר{ }כָּרַתִּי{ }אֶת־אֲבֹותָם{ }בְּיֹום{ }הֶחֱזִיקִי{ }בְיָדָם{ }לְהֹוצִיאָם{ }מֵאֶרֶץ{ }מִצְרָיִם{ }אֲשֶׁר־הֵמָּה{ }הֵפֵרוּ{ }אֶת־בְּרִיתִי{ }וְאָנֹכִי{ }בָּעַלְתִּי{ }בָם{ }נְאֻם־יְהוָֽה׃{ 33 }כִּי{ }זֹאת{ }הַבְּרִית{ }אֲשֶׁר{ }אֶכְרֹת{ }אֶת־בֵּית{ }יִשְׂרָאֵל{ }אַחֲרֵי{ }הַיָּמִים{ }הָהֵם{ }נְאֻם־יְהוָה{ }נָתַתִּי{ }אֶת־תֹּֽורָתִי{ }בְּקִרְבָּם{ }וְעַל־לִבָּם{ }אֶכְתֲּבֶנָּה{ }וְהָיִיתִי{ }לָהֶם{ לֵֽאלֹהִים{ }וְהֵמָּה{ } |
||
Kajman Profil |
#4 · Zasláno: 6. 9. 2019, 13:43:12
Používat v prototype metodě globální proměnné mně nepřijde košer. Hebrejština se tuším píše zprava doleva, v tom případě ty závorky v nich čtěte taky zprava doleva.
Zkuste regulár /([^\u0590-\u05F2\uFB20-\uFB49 ]+(:?\s[^\u0590-\u05F2\uFB20-\uFB49 ]+)*)/g |
||
Gray blogger Profil * |
#5 · Zasláno: 6. 9. 2019, 13:44:50
Ale vypadá to, že jsem to už definitivně vyřešil:
this.replace(alpnum,'{$1}').replace(/{(\w| +)}/g, '$1'); |
||
Časová prodleva: 5 let
|
0