2016-09-26 3 views
0

Моя строка приходит в два flavours-Regex добавить символы в подстроке

var a = /aid/f82eb514073124cd10d468b74eee5663?sg=1#/propertyinfo 

или

var a = /aid/f82eb514073124cd10d468b74eee5663#/propertyinfo 

Я хочу, чтобы добавить содержимое, которое приходит после помощи/и раньше? или # с "-test". В любом из перечисленных выше сценариев результат будет f82eb514073124cd10d468b74eee5663-тест

следовательно

a = /aid/f82eb514073124cd10d468b74eee5663-test#/propertyinfo 

или

a = = /aid/f82eb514073124cd10d468b74eee5663-test?sg=1#/propertyinfo 
+0

что вы сделали до сих пор? – Oluwafemi

+0

[JavaScript - Получить часть URL-адреса] (http://stackoverflow.com/a/6944772/1115360) может быть вам полезен. –

ответ

0

Похоже, что вы ищете что-то вроде this.

Регулярное выражение /\/aid\/[0-9A-F]*/i и выражение для замены $0-test.

JavaScript немного отличается от обычного обычного выражения, поэтому здесь вы идете;

var a = "/aid/f82eb514073124cd10d468b74eee5663?sg=1#/propertyinfo"; 
 
alert(a.replace(/(\/aid\/[0-9A-F]*)/i, "$1-test"));

0

приведены ваши примеры, я думаю, что после того, как строка /aid/ является своего рода хэш md5

это должно работать для вас:

'/aid/f82eb514073124cd10d468b74eee5663#/propertyinfo'.replace(new RegExp('/aid/([a-f0-9]{32})'), '$1-test'); 

, если вы этого не сделаете хотите быть настолько конкретными по длине, вы можете попробовать следующее:

'/aid/f82eb514073124cd10d468b74eee5663#/propertyinfo'.replace(new RegExp('/aid/([a-f0-9]+)'), '$1-test'); 
0

Простое решение с использованием String.replace функции:

var a = '/aid/f82eb514073124cd10d468b74eee5663sg=1#/propertyinfo', 
    result = a.replace(/aid\/([^?#]+)(?=\?|#)/, "aid/$1-test"); 

console.log(result); // /aid/f82eb514073124cd10d468b74eee5663-test?sg=1#/propertyinfo 
0

Я предлагаю заменить непосредственно # или ? поэтому регулярное выражение просто и красиво. :)

var a = "/aid/f82eb514073124cd10d468b74eee5663?sg=1#/propertyinfo"; 
 
var b = "/aid/f82eb514073124cd10d468b74eee5663#/propertyinfo"; 
 

 
console.log(a.replace(/([\?#])/,"-test$1")); 
 
console.log(b.replace(/([\?#])/,"-test$1"));

0
var a = '/aid/f82eb514073124cd10d468b74eee5663?sg=1#/propertyinfo'; 

a.replace(/(\/aid\/.+)(\?sg=1)(#\/propertyinfo)/,function(text,c,d,e){ 
    return c+'-test'+e; 
}) 
//Output: "/aid/f82eb514073124cd10d468b74eee5663-test#/propertyinfo" 

a.replace(/(\/aid\/.+)(\?sg=1#\/propertyinfo)/,function(text,c,d){ 
    return c+'-test'+d; 
}); 
//Output: "/aid/f82eb514073124cd10d468b74eee5663-test?sg=1#/propertyinfo" 
Смежные вопросы