--- loncom/LONCAPA.pm 2006/12/10 23:06:13 1.21 +++ loncom/LONCAPA.pm 2007/07/02 21:15:29 1.24 @@ -1,7 +1,7 @@ # The LearningOnline Network # Base routines # -# $Id: LONCAPA.pm,v 1.21 2006/12/10 23:06:13 albertel Exp $ +# $Id: LONCAPA.pm,v 1.24 2007/07/02 21:15:29 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -43,6 +43,7 @@ use vars qw($match_domain $match_not_d $match_username $match_not_username $match_courseid $match_not_courseid $match_name + $match_lonid $match_handle $match_not_handle); require Exporter; @@ -54,11 +55,13 @@ our @EXPORT_OK = qw($match_domain $mat $match_username $match_not_username $match_courseid $match_not_courseid $match_name + $match_lonid $match_handle $match_not_handle); our %EXPORT_TAGS = ( 'match' =>[qw($match_domain $match_not_domain $match_username $match_not_username $match_courseid $match_not_courseid $match_name + $match_lonid $match_handle $match_not_handle)],); my %perlvar; @@ -110,8 +113,8 @@ sub clean_domain { return $domain; } -$match_username = $LONCAPA::username_re = qr{\w[\w\-.]+}; -$match_not_username = $LONCAPA::not_username_re = qr{[^\w\-.]+}; +$match_username = $LONCAPA::username_re = qr{\w[\w\-.@]+}; +$match_not_username = $LONCAPA::not_username_re = qr{[^\w\-.@]+}; sub clean_username { my ($username) = @_; $username =~ s/^\W+//; @@ -122,14 +125,22 @@ sub clean_username { $match_courseid = $LONCAPA::courseid_re = qr{\d[\w\-.]+}; $match_not_courseid = $LONCAPA::not_courseid_re = qr{[^\w\-.]+}; +sub clean_courseid { + my ($courseid) = @_; + $courseid =~ s/^\D+//; + $courseid =~ s/$match_not_courseid//g; + return $courseid; +} -$match_name = $LONCAPA::name = qr{$match_username|$match_courseid}; +$match_name = $LONCAPA::name_re = qr{$match_username|$match_courseid}; sub clean_name { my ($name) = @_; $name =~ s/$match_not_username//g; return $name; } +$match_lonid = $LONCAPA::lonid_re = qr{[\w\-.]+}; + sub split_courseid { my ($courseid) = @_; my ($domain,$coursenum) = @@ -137,8 +148,8 @@ sub split_courseid { return ($domain,$coursenum); } -$match_handle = $LONCAPA::handle_re = qr{[\w\-.]+}; -$match_not_handle = $LONCAPA::not_handle_re = qr{[^\w\-.]+}; +$match_handle = $LONCAPA::handle_re = qr{[\w\-.@]+}; +$match_not_handle = $LONCAPA::not_handle_re = qr{[^\w\-.@]+}; sub clean_handle { my ($handle) = @_; $handle =~ s/$match_not_handle//g;