29.07.2012, 12:20
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
нашел решение
Сообщение от melky
|
написать сюда регу, при которой код бы возвращал то, что указано в комметарии : (флагов нет!)
"я мыл раму мылом, амиго".match(/текст реги/).join(" "); // "я амиго"
|
alert( "я мыл раму мылом, амиго".match( /^\S+|\S+$/g ).join( " " ) ); // "я амиго"
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
29.07.2012, 12:29
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от nerv_
|
нашел решение
alert( "я мыл раму мылом, амиго".match( /^\S+|\S+$/g ).join( " " ) ); // "я амиго"
|
без флагов в том числе "global"
|
|
29.07.2012, 17:08
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
melky, а вы уверены, что 3-ье задание можно выполнить без флагов?
1-ое и 2-ое задание nerv_ уже выполнил, так что не вижу смысла их повторять
Вот 4-ое задание
var pat = /<title>([\S\s]+)<\/title>/i ;
var text = '<title>заголовок</title>' ;
text = text.replace(pat, function(a, b) {return '<div>'+b+'</div>'}) ;
alert (text) ;
Этот код работает ток еси в тексте один тег title. Я не думаю, что нужно, где много тегов title, хотя еси именно это нужно, то воть
var pat = /<title>([\S\s]+?)<\/title>/i ;
var text = '<title>заголовок</title> <title>текст</title>' ;
text = text.replace(pat, function(a, b) {return '<div>'+b+'</div>'}) ;
alert (text) ;
5-ое пока не думал
|
|
29.07.2012, 17:42
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
№ 5
function Five(obj, str){
if (obj == undefined || obj == null || str == undefined || str == null) return;
var izm = str;
for (var i in obj){
var k = i + "";
if (typeof obj[k] == "number" || typeof obj[k] == "string"){
var reg = new RegExp(i, "i", "g");
str = str.replace(reg, obj[k]);
}
}
alert(izm + "\n" + str);
}
Five({
"Какашка":"Капуста",
"была":"делала",
"в жопе":"какашку",
"lLLL":{}
}, "Какашка была в жопе");
Последний раз редактировалось Dim@, 29.07.2012 в 18:05.
Причина: Сделал более интересный пример
|
|
29.07.2012, 17:50
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
Сообщение от Deff
|
Hekumok,
Написать функцию транслитерации русского текста - латиницей и наоборот
|
написать для перевода если вводили текст на русском языке, а раскладка была английская
|
|
29.07.2012, 18:35
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Dim@
|
написать для перевода если вводили текст на русском языке, а раскладка была английская
|
Оч часто в чатах и форумах - пример
Z njhjgk.cm e,tuf. yf hf,jne dtxthjv ,ele d bytnt b dc` hfccrf;e gjlhj,ytt
|
|
29.07.2012, 18:37
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
Deff,
да, очень часто - надо написать такую функцию - эх только впадлу мне, впадлу
|
|
29.07.2012, 19:28
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
Deff, русский->английский
var pat = /\S/img ;
var text = 'а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ы ь э ю я' ;
text = text.replace(pat, function(a) {
if (a=='а') return 'a' ;
if (a=='б') return 'b' ;
if (a=='в') return 'v' ;
if (a=='г') return 'g' ;
if (a=='д') return 'd' ;
if (a=='е'||a=='э') return 'e' ;
if (a=='ё') return 'yo' ;
if (a=='ж') return 'zh' ;
if (a=='з') return 'z' ;
if (a=='и'||a=='й') return 'i' ;
if (a=='к') return 'k' ;
if (a=='л') return 'l' ;
if (a=='м') return 'm' ;
if (a=='н') return 'n' ;
if (a=='о') return 'o' ;
if (a=='п') return 'p' ;
if (a=='р') return 'r' ;
if (a=='с') return 's' ;
if (a=='т') return 't' ;
if (a=='у') return 'u' ;
if (a=='ф') return 'f' ;
if (a=='х') return 'h' ;
if (a=='ц') return 'ts' ;
if (a=='ч') return 'ch' ;
if (a=='ш') return 'sh' ;
if (a=='щ') return 'sch' ;
if (a=='ы') return 'y' ;
if (a=='ь') return "'" ;
if (a=='ю') return 'yu' ;
if (a=='я') return 'ya' ;
}) ;
alert (text) ;
Последний раз редактировалось Hekumok, 29.07.2012 в 20:11.
|
|
29.07.2012, 20:00
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
Deff, Dim@, ну 'написать для перевода если вводили текст на русском языке, а раскладка была английская' нун делать также как и предыдущий пост, неохота писать...
А 5 задачу Dim@ уже сделал...
И мне кажется, что 3-ью задачу низзя сделать без флагов
|
|
29.07.2012, 20:50
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Dim@
|
№ 5
function Five(obj, str){
if (obj == undefined || obj == null || str == undefined || str == null) return;
var izm = str;
for (var i in obj){
var k = i + "";
if (typeof obj[k] == "number" || typeof obj[k] == "string"){
var reg = new RegExp(i, "i", "g");
str = str.replace(reg, obj[k]);
}
}
alert(izm + "\n" + str);
}
Five({
"Какашка":"Капуста",
"была":"делала",
"в жопе":"какашку",
"lLLL":{}
}, "Какашка была в жопе");
|
как сложно. всё проще :
function Five (obj, str) {
return str.replace(/[a-zа-я]+/ig, function (word) {
return word in obj ? obj[word]:word;
});
}
alert( Five({
"заяц": "петя",
"крыльцо": "стрельцов"
}, "вышел заяц на крыльцо"));
Сообщение от Hekumok
|
А 5 задачу Dim@ уже сделал...
|
я ж Вам задачи дал, а не всем
Сообщение от Hekumok
|
И мне кажется, что 3-ью задачу низзя сделать без флагов
|
сдаётесь? сделать можно, и очень просто. учите реги
|
|
|
|