Hướng dẫn how to check if a string has vowels in javascript - cách kiểm tra xem một chuỗi có nguyên âm trong javascript không

Tôi phải viết một hàm có một ký tự (nghĩa là một chuỗi có độ dài 1) và trả về đúng nếu nó là một nguyên âm, sai nếu không. Tôi đã đưa ra hai chức năng, nhưng không biết cái nào hoạt động tốt hơn và tôi nên thích cách nào. Một người có Regex đơn giản hơn nhưng tôi không chắc liệu tôi có nên cố gắng tránh sử dụng regex hay không?

Không có regex:

function isVowel(char) {
  if (char.length == 1) {
    var vowels = new Array("a", "e", "i", "o", "u");
    var isVowel = false;

    for (e in vowels) {
      if (vowels[e] == char) {
        isVowel = true;
      }
    }

    return isVowel;
  }
}

Với regex:

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}

Hướng dẫn how to check if a string has vowels in javascript - cách kiểm tra xem một chuỗi có nguyên âm trong javascript không

Penny Liu

13.3k5 Huy hiệu vàng71 Huy hiệu bạc89 Huy hiệu đồng5 gold badges71 silver badges89 bronze badges

Đã hỏi ngày 30 tháng 3 năm 2011 lúc 14:55Mar 30, 2011 at 14:55

3

điểm chuẩn

Tôi nghĩ rằng bạn có thể nói một cách an toàn cho vòng lặp nhanh hơn.

Tôi thừa nhận rằng một regexp trông sạch hơn về mặt mã. Nếu đó là một nút cổ chai thực sự thì hãy sử dụng một vòng lặp, nếu không thì hãy gắn bó với biểu thức chính quy vì lý do "thanh lịch"

Nếu bạn muốn đi cho sự đơn giản thì chỉ cần sử dụng

function isVowel(c) {
    return ['a', 'e', 'i', 'o', 'u'].indexOf(c.toLowerCase()) !== -1
}

Hướng dẫn how to check if a string has vowels in javascript - cách kiểm tra xem một chuỗi có nguyên âm trong javascript không

Đã trả lời ngày 30 tháng 3 năm 2011 lúc 15:01Mar 30, 2011 at 15:01

RaynosraynosRaynos

164K56 Huy hiệu vàng349 Huy hiệu bạc395 Huy hiệu Đồng56 gold badges349 silver badges395 bronze badges

7

Rất nhiều câu trả lời có sẵn, tốc độ không liên quan cho các chức năng nhỏ như vậy trừ khi bạn gọi chúng là vài trăm nghìn lần trong một khoảng thời gian ngắn. Đối với tôi, một biểu thức thông thường là tốt nhất, nhưng hãy giữ nó trong một đóng cửa để bạn không xây dựng nó mỗi lần:

Phiên bản đơn giản:

function vowelTest(s) {
  return (/^[aeiou]$/i).test(s);
}

Phiên bản hiệu quả hơn:

var vowelTest = (function() {
  var re = /^[aeiou]$/i;
  return function(s) {
    return re.test(s);
  }
})();

Trả về

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
5 nếu
function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
6 là một nguyên âm duy nhất (chữ hoa hoặc chữ thường) và
function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
7 cho mọi thứ khác.

Đã trả lời ngày 30 tháng 3 năm 2011 lúc 23:39Mar 30, 2011 at 23:39

RobgrobgRobG

Huy hiệu vàng 138K3030 gold badges170 silver badges207 bronze badges

4

Chu kỳ, mảng, regexp ... để làm gì? Nó có thể nhanh hơn nhiều :)

function isVowel(char)
{
    return char === 'a' || char === 'e' || char === 'i' || char === 'o' || char === 'u' || false;
}

Đã trả lời ngày 30 tháng 3 năm 2011 lúc 15:14Mar 30, 2011 at 15:14

EmmermanemmermanEmmerman

2.37115 huy hiệu bạc9 Huy hiệu đồng15 silver badges9 bronze badges

7

function findVowels(str) {
  return str.match(/[aeiou]/ig);
}

findVowels('abracadabra'); // 'aaaaa'

Về cơ bản, nó trả về tất cả các nguyên âm trong một chuỗi nhất định.

Đã trả lời ngày 10 tháng 6 năm 2017 lúc 15:01Jun 10, 2017 at 15:01

Hướng dẫn how to check if a string has vowels in javascript - cách kiểm tra xem một chuỗi có nguyên âm trong javascript không

Đây là một chức năng REGEXP thô mà tôi sẽ nghĩ ra (nó chưa được kiểm tra)

function isVowel(char) {
    return /^[aeiou]$/.test(char.toLowerCase());
}

Có nghĩa là,

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
8.

Đã trả lời ngày 30 tháng 3 năm 2011 lúc 15:05Mar 30, 2011 at 15:05

Buhake Sindibuhake SindiBuhake Sindi

86.5K27 Huy hiệu vàng165 Huy hiệu bạc224 Huy hiệu đồng27 gold badges165 silver badges224 bronze badges

Cá nhân, tôi sẽ xác định nó theo cách này:

function isVowel( chr ){ return 'aeiou'.indexOf( chr[0].toLowerCase() ) !== -1 }

Bạn cũng có thể sử dụng

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
9 và bỏ qua bài kiểm tra độ dài, nhưng sau đó bạn đang tạo một mảng mỗi khi bạn gọi hàm. (Có nhiều cách bắt chước điều này thông qua việc đóng cửa, nhưng đó là một chút mơ hồ để đọc)

Bpierre

10,4K2 Huy hiệu vàng24 Huy hiệu bạc27 Huy hiệu đồng2 gold badges24 silver badges27 bronze badges

Đã trả lời ngày 30 tháng 3 năm 2011 lúc 15:01Mar 30, 2011 at 15:01

Raynosraynoscwallenpoole

164K56 Huy hiệu vàng349 Huy hiệu bạc395 Huy hiệu Đồng26 gold badges126 silver badges164 bronze badges

1

Rất nhiều câu trả lời có sẵn, tốc độ không liên quan cho các chức năng nhỏ như vậy trừ khi bạn gọi chúng là vài trăm nghìn lần trong một khoảng thời gian ngắn. Đối với tôi, một biểu thức thông thường là tốt nhất, nhưng hãy giữ nó trong một đóng cửa để bạn không xây dựng nó mỗi lần:

const matches = str.match(/[aeiou]/gi);
return matches ? matches.length : 0;

Hướng dẫn how to check if a string has vowels in javascript - cách kiểm tra xem một chuỗi có nguyên âm trong javascript không

Phiên bản đơn giản:Apr 8, 2019 at 11:16

Hướng dẫn how to check if a string has vowels in javascript - cách kiểm tra xem một chuỗi có nguyên âm trong javascript không

Phiên bản hiệu quả hơn:Intellidroid

Trả về

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
5 nếu
function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
6 là một nguyên âm duy nhất (chữ hoa hoặc chữ thường) và
function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
7 cho mọi thứ khác.1 gold badge9 silver badges15 bronze badges

1

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
0

Đã trả lời ngày 30 tháng 3 năm 2011 lúc 23:39

RobgrobgMar 30, 2011 at 15:00

Huy hiệu vàng 138K30Håvard

Chu kỳ, mảng, regexp ... để làm gì? Nó có thể nhanh hơn nhiều :)1 gold badge39 silver badges46 bronze badges

2

Đã trả lời ngày 30 tháng 3 năm 2011 lúc 15:14

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
1

EmmermanemmermanMay 17, 2020 at 13:34

Hướng dẫn how to check if a string has vowels in javascript - cách kiểm tra xem một chuỗi có nguyên âm trong javascript không

2.37115 huy hiệu bạc9 Huy hiệu đồngPenny Liu

13.3k5 Huy hiệu vàng71 Huy hiệu bạc89 Huy hiệu đồng5 gold badges71 silver badges89 bronze badges

Về cơ bản, nó trả về tất cả các nguyên âm trong một chuỗi nhất định.

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
2

Đã trả lời ngày 10 tháng 6 năm 2017 lúc 15:01Apr 23, 2021 at 14:01

Hướng dẫn how to check if a string has vowels in javascript - cách kiểm tra xem một chuỗi có nguyên âm trong javascript không

Đây là một chức năng REGEXP thô mà tôi sẽ nghĩ ra (nó chưa được kiểm tra)Yuniac

Có nghĩa là,

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
8.2 silver badges10 bronze badges

1

Về cơ bản, nó trả về tất cả các nguyên âm trong một chuỗi nhất định.

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
3

Đã trả lời ngày 10 tháng 6 năm 2017 lúc 15:01Aug 25, 2021 at 5:58

Hướng dẫn how to check if a string has vowels in javascript - cách kiểm tra xem một chuỗi có nguyên âm trong javascript không

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}
4

Đây là một chức năng REGEXP thô mà tôi sẽ nghĩ ra (nó chưa được kiểm tra)Jun 13, 2018 at 17:31

Hướng dẫn how to check if a string has vowels in javascript - cách kiểm tra xem một chuỗi có nguyên âm trong javascript không

1

Là chức năng nguyên âm trong javascript?

Nguyên âm có phải là một hàm không?Xác định hàm isVowel (char) trả về đúng nếu char là nguyên âm ('a', 'e', 'i', 'o' hoặc 'u') và sai.Define a function isVowel(char) that returns True if char is a vowel ('a', 'e', 'i', 'o', or 'u'), and False otherwise.

Có bao nhiêu nguyên âm trong JavaScript?

JavaScript chứa 3 nguyên âm.3 vowels.

Biểu thức thông thường AEIOU trong JavaScript là gì?

Ví dụ, [^aeiou] sẽ khớp với tất cả các chữ cái không phải là nguyên âm.Kiểm tra các tài liệu để biết sự cố đầy đủ của tất cả các nhân vật..Match () là một phương thức JavaScript phù hợp với chuỗi với biểu thức chính quy.match all letters that are not vowels. Check out the Docs for a full breakdown of all the characters. . match() is a Javascript method that matches a string against a regular expression.