2013-02-12 19 views
13

Khi phát triển ứng dụng iOS có chứa ứng dụng khách twitter, tôi phải cho phép thẻ bắt đầu bằng # do người dùng tạo (có thể được tạo ở nơi khác trong ứng dụng, không chỉ trong phần tweet).Những ký tự nào được cho phép trong thẻ bắt đầu bằng # twitter?

Tôi muốn đảm bảo bất kỳ thẻ bắt đầu bằng # nào hợp lệ cho twitter, vì vậy tôi muốn kiểm tra lỗi giá trị đã nhập cho các ký tự không hợp lệ. Lưu ý rằng người dùng có thể đến từ các quốc gia không nói tiếng Anh.

Tôi biết các giới hạn thông thường, chẳng hạn như không bắt đầu thẻ bắt đầu bằng # và không có ký tự dấu câu đặc biệt, nhưng tôi đã tự hỏi liệu có danh sách tất cả các ký tự bổ sung được cho phép trong hashtags hay không. ký tự quốc tế).

+1

Tôi có thể xác nhận cho cyrillic bạn có thể dễ dàng tìm thấy nhiều mẩu tin bằng tiếng Nga như thế này https://twitter.com/search?q=%23%D0%BF%D1%80%D0%B8%D0% B2% D0% B5% D1% 82 & src = typd – Igor

Trả lời

0

Vâng, đối với người mới bắt đầu, bạn không thể sử dụng dấu # trong thẻ bắt đầu bằng # (hash ##).

Các hướng dẫn dưới đây được trích dẫn từ Twitter's help center:

  • dân sử dụng các biểu tượng hashtag # trước một từ khóa có liên quan hoặc cụm từ (không có khoảng trắng) trong Tweet của họ để phân loại những Tweets và giúp họ thể hiện một cách dễ dàng hơn trong Tìm kiếm Twitter.
  • Nhấp vào một từ được gắn thẻ bắt đầu bằng bất kỳ thông báo nào hiển thị cho bạn tất cả các Tweet khác được đánh dấu bằng từ khóa đó.
  • Thẻ bắt đầu bằng # có thể xảy ra ở bất kỳ đâu trong Tweet - ở đầu, giữa hoặc cuối.
  • Từ được gắn thẻ bắt đầu trở nên rất phổ biến thường là Chủ đề thịnh hành.
    Ví dụ: Trong Tweet bên dưới, @eddie bao gồm thẻ bắt đầu bằng # hashtag. Người dùng đã tạo điều này như là viết tắt của "Follow Friday", một truyền thống hàng tuần, nơi người dùng giới thiệu những người mà những người khác nên theo dõi trên Twitter. Bạn sẽ thấy điều này vào thứ Sáu.

Sử dụng hashtags một cách chính xác:

  • Nếu bạn Tweet với một hashtag trên một tài khoản nào, bất cứ ai thực hiện tìm kiếm hashtag có thể tìm Tweet của bạn
  • Đừng #spam # với #hashtags. Đừng quá gắn thẻ một Tweet. (Các phương pháp hay nhất khuyên bạn không nên sử dụng nhiều hơn 2 thẻ bắt đầu bằng # cho mỗi Tweet.)
  • Chỉ sử dụng thẻ bắt đầu bằng # trên Tweets có liên quan đến chủ đề.
+2

Cảm ơn bạn đã phản hồi, tuy nhiên tôi biết các nguyên tắc. Tôi dường như không thể tìm thấy một danh sách dứt khoát về những ký tự nước ngoài được cho phép trong thẻ bắt đầu bằng #. Cảm ơn anyway mặc dù. –

3

Twitter cho phép chữ cái, số và dấu gạch dưới.

Tôi đã kiểm tra điều này bằng cách tạo tweets qua API của họ. Ví dụ, tweet

thẻ Hash kiểm tra #foo [thanh

dẫn đến "#foo" được đánh dấu là một thẻ băm, và "[bar" là văn bản chưa định dạng.

+6

Bạn có thể làm rõ các chữ cái nào không? Không chắc chắn nếu bạn đọc toàn bộ câu hỏi của tôi, nhưng tôi muốn biết các ký tự quốc tế nào được hỗ trợ, nếu có. –

6

Karl, như bạn đã chỉ ra đúng, bất kỳ từ nào trong bất kỳ ngôn ngữ nào cũng có thể là một thẻ bắt đầu bằng # hợp lệ (miễn là đáp ứng một số tiêu chí cơ bản). Như những gì bạn đang yêu cầu là một danh sách các ký tự từ quốc tế hợp lệ.Tôi chắc rằng ai đó đã biên soạn danh sách đó ở đâu đó, nhưng việc sử dụng nó sẽ không phải là cách tiếp cận hiệu quả nhất để đạt được mục tiêu ban đầu của bạn: đảm bảo rằng thẻ bắt đầu bằng # đã cho hợp lệ cho twitter.

Tôi tin rằng, những gì bạn đang tìm kiếm là cụm từ thông dụng có thể khớp với tất cả các ký tự từ trong phạm vi Unicode. Biểu hiện như vậy sẽ không phụ thuộc vào ngôn ngữ của bạn và sẽ khớp với tất cả các ký tự trong kiểu chữ hiện đại có thể xuất hiện như một phần của từ.

Bạn không chỉ định ngôn ngữ bạn đang viết ứng dụng của mình, vì vậy, tôi không thể giúp bạn thực hiện ngôn ngữ cụ thể. Tuy nhiên, cách tiếp cận cơ bản sẽ như sau:

  1. Kiểm tra nếu một trong các biểu thức khung hoặc các lớp nhân vật đã hỗ trợ ký tự Unicode trong khoảng trong ngôn ngữ của bạn. Nếu có thì hãy sử dụng chúng.

  2. Kiểm tra xem có công cụ sửa đổi regex có thể cho phép phạm vi ký tự Unicode hỗ trợ cho ngôn ngữ của bạn hay không.

Hầu hết các ngôn ngữ hiện đại thực hiện biểu thức thông thường theo một cách khá giống nhau và rất nhiều trong số họ mượn rất nhiều từ Perl, vì vậy tôi hy vọng sau hai ví dụ sẽ đưa bạn đi đúng hướng:

Perl:

Sử dụng POSIX khung (ví dụ: [[:alpha:]], [[:allnum:]], [[:digit:]], vv) khi họ cung cấp cho bạn kiểm soát tốt hơn các ký tự bạn muốn để phù hợp, so với các lớp nhân vật (ví dụ: \w).

Sử dụng /u công cụ sửa đổi để bật hỗ trợ Unicode khi khớp mẫu. Theo công cụ sửa đổi này, nền tảng ASCII có hiệu quả trở thành một nền tảng Unicode; và do đó, ví dụ: \w sẽ khớp với bất kỳ ký tự nào trong số hơn 100.000 ký tự trong Unicode.

tài liệu Xem Perl để biết thêm:

Ruby:

Sử dụng POSIX khung như họ bao gồm các ký tự ASCII. Ví dụ,/\ d/chỉ khớp các chữ số thập phân ASCII (0-9); trong khi/[[: chữ số:]]/khớp với bất kỳ ký tự nào trong thể loại Unicode Nd.

tài liệu

Xem Ruby cho biết thêm:

Ví dụ:

Cho một danh sách các hashtags, regex sau đây sẽ phù hợp với tất cả các hashtags bắt đầu bằng một từ ký tự (inc.các ký tự từ quốc tế) và được theo sau bởi một ký tự từ khác, một số hoặc dấu gạch dưới:

m/^#[[:alpha:]][[:alnum:]_]+$/u  # Perl 

    /^#[[:alpha:]][[:alnum:]_]+$/  # Ruby 
-1

Chỉ chữ cái và số được phép là một phần của thẻ bắt đầu bằng #. Nếu một ký tự khác ngoài ký tự sau # hàng đầu và một chữ cái hoặc số, thẻ bắt đầu bằng # sẽ bị cắt tại thời điểm này.

Tôi khuyên bạn nên giao diện người dùng của bạn cho biết điều này cho người dùng bằng cách thay đổi màu văn bản của trường nhập nếu người dùng nhập bất kỳ thông tin nào khác ngoài chữ cái hoặc số.

Các vấn đề liên quan