g | x | w | all
Bytes Lang Time Link
021AWK250807T165007Zxrs
016Uiua231104T180347Zchunes
058TIBasic230102T010354ZYouserna
005Vyxal s230101T183507Zpacman25
029Arturo230101T152406Zchunes
031Factor210327T233850Zchunes
00605AB1E200412T133440Zuser9206
087Excel210327T144633ZAxuary
102naz200412T222122Zsporebal
007Japt v2.0a0201116T082503ZShaggy
005Stax201116T074228ZRazetime
007Brachylog200518T234613ZUnrelate
042JavaScript V8200518T145757ZYaroslav
019Ruby p200517T181408ZKirill L
012Pyth200517T175607ZMukundan
006Jelly200412T150929ZJonathan
015CJam200503T104211Zlyxal
016Keg ir200413T003739Zuser9206
030PowerShell200423T145519ZElgirhat
041PHP200414T154559ZKaddath
nanAPL NARS2000 0.5.13.0200414T153646Zjimfan
026JavaScript ES6200412T143812ZArnauld
018Perl 5 p200413T193238ZXcali
031Ruby200413T002525ZAaron Ch
012Charcoal200412T220213ZNeil
055Python 3200412T134344ZNoodle9
043Python 2200412T192035Zdingledo
061Python 3200412T190344ZParam Si
034Haskell200412T184959Zovs
020K oK200412T182947ZGalen Iv
052C gcc200412T142218Znewbie
014sed200412T145440ZMitchell
008Retina200412T135507Zthe defa
014APL Dyalog200412T140448ZUriel
026Erlang escript200412T135002Zuser9206
043Python 3200412T134452ZSurculos
066SNOBOL4 CSNOBOL4200412T134347ZGiuseppe
033Red200412T134334ZGalen Iv
015J200412T133734ZJonah

AWK, 21 bytes

1,gsub(/\B[aeiou]/,X)

Attempt This Online!

Uiua, 16 bytes

⍜↘(▽¬∊,"aeiou")1

Try it!

⍜↘(▽¬∊,"aeiou")1
⍜↘(           )1  # apply (...) to the input except the first letter
   ▽¬∊,"aeiou"    # remove vowels

TI-Basic, 58 bytes

Input Str1
sub(Str1,1,1
For(I,2,length(Str1
If not(inString("AEIOU",sub(Str1,I,1
Ans+sub(Str1,I,1
End
Ans

Takes input as all capital letters (which is hopefully allowed).

Vyxal s, 5 bytes

ḣkvF"

Try it Online!

Port of the 05Ab1e answer but one less byte because flags are cool

Arturo, 29 bytes

$[s][replace s{/\B[aeiou]}""]

Try it

Factor, 31 bytes

[ 1 cut "aeiou"without append ]

Try it online!

Explanation

It's a quotation (anonymous function) that takes one string as input and leaves one string as output. Assuming "potato" is on top of the data stack when this quotation is called...

05AB1E, 6 bytes

ćsžMм«

Try it online!

Explanation

       Input (e.g.). potato
ć      Head extract. otato, p
 s     Swap        . p, otato
  žM   Vowels      . p, otato, aeiou
    м  Remove      . p, tt
     « Concatenate . ptt

Implicit output    .

Excel, 87 bytes

=LET(q,SEQUENCE(LEN(A1)),x,MID(A1,q,1),CONCAT(IF(ISERROR(FIND(x,"aeiou"))+(q=1),x,"")))

Hopefully this link works. Try it here

naz, 102 bytes

2x1v2a6m8m1a2x2v4a2x3v4a2x4v6a2x5v6a2x6v1x1f1r3x1v2e3x2v1e3x3v1e3x4v1e3x5v1e3x6v1e1o1f0x1x2f0a0x1r1o1f

Works for any null-terminated input string.

Try it online!

Explanation (with 0x instructions removed)

2x1v                                           # Set variable 1 equal to 0
2a6m8m1a2x2v                                   # Set variable 2 equal to 97 ("a")
4a2x3v                                         # Set variable 3 equal to 101 ("e")
4a2x4v                                         # Set variable 4 equal to 105 ("i")
6a2x5v                                         # Set variable 5 equal to 111 ("o")
6a2x6v                                         # Set variable 6 equal to 117 ("u")
1x1f                                           # Function 1
    1r                                         # Read a byte of input
      3x1v2e                                   # Goto function 2 if it equals variable 1
            3x2v1e3x3v1e3x4v1e3x5v1e3x6v1e     # Jump back to the start of the function
                                               # if it equals variable 2, 3, 4, 5, or 6
                                          1o1f # Otherwise, output it, then call the
                                               # function again
1x2f                                           # Function 2
    0a                                         # Add 0 to the register
1r1o                                           # Output the first byte of input
1f                                             # Call function 1

Japt v2.0a0, 7 bytes

Î+UÅr\v

Try it

Stax, 5 bytes

ö¶╫♂.

Run and debug it

Brachylog, 7 bytes

h|b;Ḅ∋ᵛ

Try it online!

Generator.

 |         The output is
h          the first element of the input,
 |         or
     ∋ᵛ    some shared element of
 |b        the input without its first element
   ;Ḅ      and the lowercase consonants.

JavaScript (V8), 42 bytes

s=>s[0]+s.substr(1).replace(/[aeiou]/g,'')

Try it online!

Ruby -p, 22 19 bytes

gsub /\B[aeiou]/,''

Try it online!

Thanks to Command Master for -3 bytes.

Pyth, 12 bytes

+hQ-tQ"aeiou

Explanation

+hQ-tQ"aeiou
    tQ        : Everything except first element of evaluated input
   -  "aeiou  : Remove all occurrences of a, e, i, o and u from the string
+hQ           : Prepend first element of evaluated input

Try it online!

Jelly, 6 bytes

Ḣ;ḟØẹ$

Try it online!

How?

Ḣ;ḟØẹ$ - Link: list of characters, W
Ḣ      - head & yield
     $ - last two links as a monad - i.e. f(rest of W)
  ḟ    -   filter discard:
   Øẹ  -     lower-case vowels
 ;     - (head of W) concatenate (f(rest of W))

CJam, 15 bytes

l_0=\1>"aeiou"-

Try it online!

It's 15 bytes because there is no better way to push all those vowels.

Explained

l_0=\1>"aeiou"-
l_                  e# Take the input and duplicate it: [input, input]
  0=                e# From the input, take the first character: [input, input[0]]
    \               e# Swap the top two items: [input[0], input]
     1>             e# Drop the first character: [input[0], input[1:]]
       "aeiou"      e# Push the string "aeiou": [input[0], input[1:], "aeiou"]
              -     e# Remove all occurances of the above string from the input[1:] and print.

Keg -ir, 34 16 bytes

Huge saving thanks to Lyxal.

,(:⅍`aeiou`-[,|_

Try it online!

PowerShell, 33 30 bytes

-3 bytes thanks to @CommandMaster

$args-split"(.)[aeiou]"-join''

Try it online!

PHP, 41 bytes

<?=preg_replace("/\\B[aeiou]/","",$argn);

Try it online!

I wanted to find an original solution but it ends up like everyone's regex.. Deception is my middle name

APL (NARS2000 0.5.13.0), 20 unicode char (so 20 byte or 40 byte?)

(↑,((~∘'aeiou')1∘↓))


Sample output:

      (↑,((~∘'aeiou')1∘↓)) 'i'
i
      (↑,((~∘'aeiou')1∘↓)) 'ate'
at
      (↑,((~∘'aeiou')1∘↓)) 'potato'
ptt
      (↑,((~∘'aeiou')1∘↓)) 'ksboejqfgcrauxpwivtzndlhmy' 
ksbjqfgcrxpwvtzndlhmy
      (↑,((~∘'aeiou')1∘↓)) ''


Thanks to the tacit feature added lately.

Since APL code chars are unicode chars, I am not sure if one char should be counted as two byte or not.

JavaScript (ES6),  27  26 bytes

Saved 1 byte thanks to @Neil

Returns a list of characters.

s=>s.match(/^.|[^aeiou]/g)

Try it online!

Perl 5 -p, 18 bytes

s/(?<!^)[aeiou]//g

Try it online!

Ruby, 31 bytes

->x{x[0]+x[1..].tr('aeiou','')}

Needs to be run on Ruby 2.6 or above, since it uses an endless range.

(TIO is on 2.5.5, so it doesn't work there.)

Charcoal, 12 bytes

ΦS¬∧κ№aeiouι

Try it online! Link is to verbose version of code. Explanation:

 S              Input string
Φ ¬             Exclude characters where
     №aeiouι    Character is a vowel
   ∧κ           And index is not zero
                Implicitly print

Python 3, 57 55 bytes

Saved 2 bytes thanks to ovs!!!

lambda s:s[0]+''.join(c for c in s[1:]if{c}-{*'aeiou'})

Try it online!

Python 2, 43 bytes

Another 43-byte solution in Python.

lambda s:s[0]+s[1:].translate(None,'aeiou')

Try it online!

Python 3, 61 bytes

lambda s:s[0]+''.join(filter(lambda x:x not in'aeiou',s[1:]))

Try it online!

Haskell, 34 bytes

f(a:s)=a:[x|x<-s,notElem x"aeiou"]

Try it online!

K (oK), 20 bytes

{(*x),(1_x)^"aoeiu"}

Try it online!

C (gcc), 57 56 52 bytes

Time to roll out some magic numbers!

Thanks @Arnauld for even better magic numbers!

f(char*a,char*b){for(*b++=*a;*b=*++a;)b+=4373%*a&1;}

Try it online!

sed, 14 bytes

s/\B[aeiou]//g

Try it online!


Bash + Core utilities, 19 bytes

sed s/\\B[aeiou]//g

Try it online!

Retina, 15 13 8 bytes

0T1,`v`_

Transliterates lowercase vowels into nothing (_) in the 0th in 0-indexing match of the implicit regex that matches the entire string, after index 1 (1,).

Try it online!

APL (Dyalog), 14 bytes

⊃,'aieou'~⍨1∘↓

Try it online!

Erlang (escript), 26 bytes

f([H|T])->[H]++T--"aeiou".

Try it online!

Explanation

f([H|T])->       % Match the head & tail of the input string.
[H]              % Wrap the head in a list,
   ++T           % Append the tail
      --"aeiou". % with all vowels removed.

Python 3, 44 43 bytes

lambda a,*s:[a]+[c[c in"aeiou":]for c in s]

Try it online!

Input: Characters of the word. E.g f("a", "t", "e")
Output: A list of characters.

SNOBOL4 (CSNOBOL4), 66 bytes

 INPUT LEN(1) . F REM . I
V I ANY('aeiou') =:S(V)
 OUTPUT =F I
END

Try it online!

Red, 33 bytes

func[s][trim/with next s"aeiou"s]

Try it online!

J, 15 bytes

{.,'aeiou'-.~}.

Try it online!

Straightforward: