Строка регулярного выражения сравнивает игнорирующие символы
У меня есть две переменные:
varAdditionalTeamAddress = ;; MountainWestITSupport@somedomain.com
VariableAddTeamEmails = ; MountainWestITSupport@somedomain.com;
Эти две переменные используются для объединения и сбора дополнительных писем группы поддержки. Но в процессе объединения, если электронные письма пусты, появляются только точки с запятой.
Мне нужно сравнить эти две переменные (игнорируя;), чтобы увидеть, равны ли они. Можем ли мы написать регулярное выражение для извлечения всех точек с запятой и пробелов из этой строки электронной почты, чтобы они были сопоставимы?
Как и в случае выше, если бы я очистил их, исключив пробелы и точки с запятой, тест на равенство вернул бы ИСТИНА.
Регулярные гуру, пожалуйста, помогите. PS Мне нужен REGEX способ сделать это.
3 ответа
Ты можешь сделать:
varAdditionalTeamAddress = varAdditionalTeamAddress.replace(/^[ ;]+/, "");
VariableAddTeamEmails = VariableAddTeamEmails.replace(/^[ ;]+/, "");
удалить любую комбинацию ;
и пространство от начала ваших переменных.
Если вы используете Windows PowerShell, то вы можете сделать это
$varAdditionalTeamAddress = ";; MountainWestITSupport@somedomain.com"
$VariableAddTeamEmails = " ; MountainWestITSupport@somedomain.com;"
if ( ($varAdditionalTeamAddress.Trim() -replace '(;+|\s)','') -eq ($VariableAddTeamEmails.Trim() -replace '(;+|\s)','')){
Write "Email Strings are equal"
}else{
Write "They Seem to different"
}
Извините за сжатый код:
if(
VariableAddTeamEmails.match( /\w+@\w+\.\w+/g ).indexOf(
varAdditionalTeamAddress.match( /\w+@\w+\.\w+/g )[ 0 ] )
) != -1
){
// ...
}
Мое регулярное выражение не совсем лучший способ получить адресную почту. На StackOverFlow много тем.