2014-12-17 3 views
1

У меня есть две переменные:строка Регулярное выражение сравнения игнорируя символы

varAdditionalTeamAddress = ;; [email protected] 

VariableAddTeamEmails = ; [email protected]; 

Эти две переменные используются для объединения и сбора дополнительных писем поддержки команды. Но в процессе конкатенации, если электронные письма пусты, заканчиваются только точки с запятой.

Мне нужно сравнить эти две переменные (игнорируя;), чтобы убедиться, что они равны. Можем ли мы написать регулярное выражение, чтобы извлечь все точки с запятой и пробелы из этой строки электронной почты, чтобы они были сопоставимы?

Как и выше, если бы я их очистил, исключив пробелы и точки с запятой, тест равенства вернет TRUE.

Regex гуру, пожалуйста, помогите. PS Мне нужен REGEX способ сделать это.

ответ

2

Вы можете сделать:

varAdditionalTeamAddress = varAdditionalTeamAddress.replace(/^[ ;]+/, ""); 

VariableAddTeamEmails = VariableAddTeamEmails.replace(/^[ ;]+/, ""); 

удалить любую комбинацию ; и пространство от начала ваших переменных.

+2

Дай человек (? Женщину) рыбу .... научить человек ловить рыбу .... –

+1

Я вегетарианец;) Я бы хотел научиться ловить рыбу для других голодных людей! :) – Athapali

0

жаль сжатый код:

if( 
    VariableAddTeamEmails.match(/\[email protected]\w+\.\w+/g).indexOf( 
      varAdditionalTeamAddress.match(/\[email protected]\w+\.\w+/g)[ 0 ]) 
    ) != -1 
){ 
// ... 
} 

Моего регулярное выражение не лучший способ, чтобы получить адрес электронной почты. На StackOverFlow есть много предметов.

0

Если вы на Windows с помощью PowerShell, то вы можете сделать это

$varAdditionalTeamAddress = ";; [email protected]" 
$VariableAddTeamEmails = " ; [email protected];" 

if (($varAdditionalTeamAddress.Trim() -replace '(;+|\s)','') -eq ($VariableAddTeamEmails.Trim() -replace '(;+|\s)','')){ 
    Write "Email Strings are equal" 
}else{ 
    Write "They Seem to different" 
}