Tôi cần Regex kiểm tra xem String
có ít nhất 4 ký tự duy nhất không. Ví dụ, nếu một chuỗi là "test"
thì nó không thành công vì nó có ba ký tự khác nhau nhưng nếu một chuỗi là "test1"
thì nó sẽ chuyển.Cần Regex kiểm tra ít nhất 4 ký tự khác nhau trong chuỗi
Trả lời
Tôi không chắc chắn làm thế nào để làm điều đó với một regex, tôi cũng không mong rằng đó là một cách tốt để giải quyết vấn đề. Dưới đây là một chức năng mục đích tổng quát hơn với javascript thường xuyên:
function countUniqueChars(testVal) {
var index = {};
var ch, cnt = 0;
for (var i = 0; i < testVal.length; i++) {
ch = testVal.charAt(i);
if (!(ch in index)) {
index[ch] = true;
++cnt;
}
}
return(cnt);
}
function hasFourUniqueChars(testVal) {
return(countUniqueChars(testVal) >= 4);
}
Bạn có thể thấy nó hoạt động ở đây: http://jsfiddle.net/jfriend00/bqBRv/
Điều này có thực sự hoạt động không? –
@ChuckNorris "Chuck Norris sau nha sĩ" – mowwwalker
Có, nó hoạt động. Xem [jsFiddle] (http://jsfiddle.net/jfriend00/bqBRv/). – jfriend00
Nếu bạn đang mở để sử dụng thư viện bổ sung, undescore.js cung cấp một số chức năng tiện ích mà có thể thực hiện điều này rất ngắn và ngọt ngào truy vấn:
function countUniqueCharacters(value) {
return _.uniq(value.split("")).length;
}
var str = "abcdef"
var counter = 0;
hash = new Object();
var i;
for(i=0; i< str.length; i++){
if(!hash[str.charAt(i)]){
counter +=1; hash[str.charAt(i)]=true
}
}
if(counter < 4){
console.log("error");
}
Điều này không bỏ qua ký tự cuối cùng? –
Không. Biểu tượng cuối cùng của chuỗi có string.length - 1 vị trí – gayavat
Nhưng bạn chỉ tương tác với chuỗi.length - 2, hãy chú ý đến "i
- 1. Bash cần kiểm tra chuỗi ký tự chữ số
- 2. Cách kiểm tra xem chuỗi có ít nhất một chữ cái, số và ký tự đặc biệt trong php
- 3. regex cho n ký tự hoặc ít nhất m ký tự
- 4. Kiểm tra các ký tự lặp lại trong một chuỗi
- 5. regex - nhận số sau chuỗi ký tự nhất định
- 6. Python: Cách thanh lịch để kiểm tra xem có ít nhất một regex trong danh sách khớp với một chuỗi
- 7. jquery validate kiểm tra ít nhất một hộp kiểm
- 8. Kiểm tra các ký tự đặc biệt (/ * - + _ @ & $ #%) trong một chuỗi?
- 9. kiểm tra ký tự
- 10. Kiểm tra nếu 2 mảng có ít nhất 1 giá trị như nhau
- 11. kiểm tra xem chuỗi có chứa cả số và chữ cái (ít nhất)
- 12. regex cho chữ và số, nhưng ít nhất một ký tự
- 13. Khi nào tôi cần phải thoát khỏi các ký tự trong bộ ký tự regex (trong [])?
- 14. RegEx để kiểm tra 3 hoặc nhiều lần xuất hiện liên tiếp của một ký tự
- 15. JavaScript - kiểm tra các ký tự viết thường trong một chuỗi
- 16. Kiểm tra xem 2 chuỗi có chứa các ký tự giống nhau không?
- 17. tách chuỗi trên một số ký tự khác nhau
- 18. Cách kiểm tra bộ ký tự của chuỗi?
- 19. Php kiểm tra nếu chuỗi có ký tự Trung Quốc
- 20. Cách ít phiền toái nhất để kiểm tra cập nhật tự động trong ứng dụng gốc
- 21. Cách tách chuỗi giữa các ký tự khác nhau
- 22. Regex: Sử dụng xác nhận lookahead để kiểm tra xem ký tự tồn tại nhiều nhất một số lần nhất định
- 23. Regex đơn giản, khớp với bất kỳ chuỗi nào có ít nhất một dấu gạch ngang
- 24. Kiểm tra từ sau ký tự '@' trong PHP
- 25. Cần một regex để loại trừ chuỗi nhất định
- 26. Regex để kiểm tra ngày
- 27. Kiểm tra xem chuỗi có thể được chuyển đổi thành loại khác không, loại khác nhau
- 28. Rails 3 - Kiểm tra xem chuỗi/văn bản có chứa một từ/ký tự nhất định thông qua regex trong bộ điều khiển
- 29. Thay thế một ký tự bằng một ký tự khác trong một chuỗi trong android?
- 30. Cần regex cho chuỗi phải có cả ký tự số và chữ cái
Do ** Không ** Sử dụng một "biểu thức chính quy" cho việc này. Cụm từ thông dụng ** không thể xử lý vấn đề này ** tốt. (Vâng, đó là * có thể *, fsvo, nhưng đó là một cơn ác mộng và giới hạn ở một độ dài trên tương đối nhỏ.) –
Thực ra, điều đó không thường xuyên. – Matthias