Java tách chuỗi bằng thẻ html

❮ Phương thức chuỗi


Thí dụ

Tách một chuỗi thành một danh sách trong đó mỗi từ là một mục danh sách

txt = "chào mừng đến với khu rừng"

x = txt. tách ra()

in(x)

Tự mình thử »


Định nghĩa và cách sử dụng

Phương thức split() tách một chuỗi thành một danh sách

Bạn có thể chỉ định dấu phân cách, dấu phân cách mặc định là bất kỳ khoảng trắng nào

Ghi chú. Khi maxsplit được chỉ định, danh sách sẽ chứa số phần tử đã chỉ định cộng với một


cú pháp

chuỗi. tách (dấu phân cách, maxsplit)

Giá trị tham số

Tham sốMô tảdấu phân cáchTùy chọn. Chỉ định dấu tách để sử dụng khi tách chuỗi. Theo mặc định, mọi khoảng trắng đều là dấu phân cáchmaxsplitOptional. Chỉ định có bao nhiêu phần chia để làm. Giá trị mặc định là -1, là "tất cả các lần xuất hiện"

Thêm ví dụ

Thí dụ

Tách chuỗi, sử dụng dấu phẩy, theo sau là khoảng trắng, làm dấu phân tách

txt = "xin chào, tôi tên là Peter, tôi 26 tuổi"

x = txt. tách ra(", ")

in(x)

Tự mình thử »

Thí dụ

Sử dụng ký tự băm làm dấu phân cách

txt = "táo#chuối#anh đào#cam"

x = txt. tách ra("#")

in(x)

Tự mình thử »

Thí dụ

Tách chuỗi thành một danh sách có tối đa 2 mục

txt = "táo#chuối#anh đào#cam"

# đặt tham số maxsplit thành 1, sẽ trả về danh sách có 2 phần tử
x = txt. tách ("#", 1)

in(x)

Tự mình thử »


❮ Phương thức chuỗi


Các phần dựng sẵn này hoạt động trên một giá trị trái chuỗi. Tuy nhiên, nếu giá trị bên trái là số hoặc ngày/giờ/ngày giờ hoặc boolean (kể từ 2. 3. 20), nó sẽ tự động chuyển đổi thành chuỗi theo các cài đặt định dạng số, ngày/giờ/ngày-thời gian và định dạng boolean hiện tại (là các trình định dạng tương tự được áp dụng khi chèn các giá trị như vậy với

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
8)

boolean

Chuỗi được chuyển đổi thành giá trị boolean. Chuỗi phải là

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
9 hoặc
<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
0 (phân biệt chữ hoa chữ thường. ) hoặc phải ở định dạng được chỉ định bởi cài đặt
<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
1

Nếu chuỗi không ở định dạng phù hợp, một lỗi sẽ hủy bỏ quá trình xử lý mẫu khi bạn cố gắng truy cập tích hợp sẵn này

cap_first

Chuỗi có từ đầu tiên của chuỗi được viết hoa. Để biết ý nghĩa chính xác của "từ", hãy xem. Thí dụ

Mẫu

${"  green mouse"?cap_first}
${"GreEN mouse"?cap_first}
${"- green mouse"?cap_first}

Đầu ra

đầu ra

  Green mouse
GreEN mouse
- green mouse

Trong trường hợp của

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
2, từ đầu tiên là
<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
3

Lưu ý rằng điều này sử dụng chuyển đổi nhận biết ngôn ngữ, nghĩa là kết quả có thể khác nhau tùy thuộc vào

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
4 hiện tại (ngôn ngữ, quốc gia)

c (đối với giá trị chuỗi)

Ghi chú

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
5 tích hợp sẵn cũng hoạt động và

Ghi chú

Để cung cấp thông tin cơ bản, hãy xem Hướng dẫn dành cho tác giả mẫu/Khác/Định dạng dành cho người hoặc dành cho máy tính

Ghi chú

Các chuỗi hỗ trợ tích hợp

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
5 kể từ FreeMarker 2. 3. 32

Tích hợp sẵn này chuyển đổi một chuỗi thành chữ "ngôn ngữ máy tính", theo giá trị của

Đối với các

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
7-s được tích hợp trong FreeMarker, các quy tắc như sau

  • "JSON", "kế thừa". Cung cấp một chuỗi ký tự JSON, nghĩa là nó sẽ được bao quanh bởi dấu ngoặc kép (

    <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    9) và sẽ được thoát bằng dấu gạch chéo ngược (
    R&D
    R&D
    0) nếu cần. Để biết các quy tắc thoát chính xác, hãy xem

  • "Javascript". Gần giống như JSON, nhưng sử dụng

    R&D
    R&D
    2 thay vì
    R&D
    R&D
    3 nếu có thể. Để biết các quy tắc thoát chính xác, hãy xem , ngoại trừ điều này sẽ không thoát khỏi dấu nháy đơn (vì nó biết rằng nó đã sử dụng dấu ngoặc kép xung quanh chuỗi ký tự)

  • "Java". Cung cấp một chuỗi ký tự Java, nghĩa là, nó sẽ được bao quanh bởi dấu ngoặc kép (

    <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    9) và sẽ được thoát bằng dấu gạch chéo ngược (
    R&D
    R&D
    0) khi cần. Để biết các quy tắc thoát chính xác, hãy xem

  • "XS". Để nguyên chuỗi. Ý tưởng là bạn sẽ chèn giá trị dưới dạng phần thân của một phần tử XML hoặc vào một thuộc tính XML, vì vậy nó không cần trích dẫn hoặc bất kỳ cú pháp đặc biệt nào khác. Mặc dù nó cần mã hóa XML, nhưng điều đó phải được xử lý bởi cơ sở thoát tự động chứ không phải bởi cơ sở

    <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    7

Nếu giá trị tích hợp sẵn

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
5 được áp dụng là
  Green mouse
GreEN mouse
- green mouse
00/thiếu, nó sẽ dừng quá trình xử lý mẫu có lỗi, giống như hầu hết các tích hợp sẵn khác. Thay vào đó, nếu bạn muốn xuất ra một
  Green mouse
GreEN mouse
- green mouse
00 chữ, hãy xem phần

cn (đối với giá trị chuỗi)

Điều này thực hiện tương tự như , nhưng khi được áp dụng trên ____5_______00/giá trị bị thiếu, nó sẽ xuất ra giá trị ____5_______00 theo. Xem thêm chi tiết về định dạng một

  Green mouse
GreEN mouse
- green mouse
00

c_lower_case

Chuỗi được chuyển đổi thành chữ thường, để sử dụng trên máy tính ("c" như trong ). Nói một cách đơn giản, nó sẽ được chuyển thành chữ thường như trong tiếng Anh, bất kể

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
4 hiện tại (ngôn ngữ, quốc gia). Ví dụ:
  Green mouse
GreEN mouse
- green mouse
10 sẽ là
  Green mouse
GreEN mouse
- green mouse
11, luôn luôn

Để chuyển đổi chữ thường cho tiêu dùng của con người, hãy sử dụng thay thế

c_upper_case

Chuỗi được chuyển đổi thành chữ hoa, để sử dụng trên máy tính ("c" như trong ). Nói một cách đơn giản, nó sẽ được chuyển thành chữ hoa như trong tiếng Anh, bất kể

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
4 hiện tại (ngôn ngữ, quốc gia). Ví dụ:
  Green mouse
GreEN mouse
- green mouse
15 sẽ là
  Green mouse
GreEN mouse
- green mouse
16, luôn luôn

Đối với chuyển đổi chữ hoa cho tiêu dùng của con người, hãy sử dụng thay thế

viết hoa

Chuỗi có tất cả các từ được viết hoa. Để biết ý nghĩa chính xác của "từ", hãy xem. Thí dụ

Mẫu

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}

Đầu ra

đầu ra

  Green Mouse
Green Mouse

chop_linebreak

Trả về chuỗi không có phần cuối nếu có ngắt dòng, nếu không thì chuỗi không thay đổi. Nếu chuỗi kết thúc bằng nhiều lần ngắt dòng thì chỉ ngắt dòng cuối cùng bị xóa

chứa đựng

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 1. Nó không tồn tại trong 2. 3

Trả về nếu chuỗi con được chỉ định làm tham số cho tích hợp sẵn này xảy ra trong chuỗi. Ví dụ

Mẫu

<#if "piceous"?contains("ice")>It contains "ice"

Điều này sẽ xuất ra

đầu ra

It contains "ice"

ngày, giờ, ngày giờ

Giá trị chuỗi được chuyển đổi thành giá trị ngày, giờ hoặc ngày giờ. Nó sẽ mong đợi định dạng được chỉ định bởi. Nếu chuỗi không ở định dạng phù hợp, một lỗi sẽ hủy bỏ quá trình xử lý mẫu khi bạn cố gắng truy cập tích hợp sẵn này

Mẫu

<#-- The date_format, time_format and datetime_format settings must match this format! -->
<#assign someDate = "Oct 25, 1995"?date>
<#assign someTime = "3:05:30 PM"?time>
<#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>

<#-- Changing the setting value changes the expected format: -->
<#setting datetime_format="iso">
<#assign someDatetime = "1995-10-25T15:05"?datetime>

Bạn cũng có thể chỉ định định dạng một cách rõ ràng như

  Green mouse
GreEN mouse
- green mouse
21 (và do đó cũng là
  Green mouse
GreEN mouse
- green mouse
22) hoặc
  Green mouse
GreEN mouse
- green mouse
23; . Định dạng cũng có thể được chỉ định tương tự với
  Green mouse
GreEN mouse
- green mouse
24 và
  Green mouse
GreEN mouse
- green mouse
25. Để biết cú pháp và ý nghĩa của các giá trị định dạng, hãy xem các giá trị có thể có của. Thí dụ

Mẫu

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>

Để tránh hiểu lầm, giá trị bên trái không cần phải là một chuỗi ký tự. Ví dụ: khi bạn đọc dữ liệu từ XML DOM (từ đó tất cả các giá trị đến dưới dạng chuỗi chưa phân tích cú pháp), bạn có thể thực hiện những việc như

  Green mouse
GreEN mouse
- green mouse
29 để chuyển đổi giá trị chuỗi thành ngày thực

Tất nhiên, định dạng cũng có thể là một biến, như trong

  Green mouse
GreEN mouse
- green mouse
30

Lưu ý rằng kể từ 2. 3. 24, các phần dựng sẵn này cũng có thể được gọi với 0 đối số, như

  Green mouse
GreEN mouse
- green mouse
31. Nó gần giống như chỉ viết
  Green mouse
GreEN mouse
- green mouse
24. Sự khác biệt là kỹ thuật cao và hiếm khi quan trọng.
  Green mouse
GreEN mouse
- green mouse
31 và như vậy trả về chính xác cùng một đối tượng Java mà trình phân tích cú pháp ngày (triển khai _______5_______34) trả về, trong khi
  Green mouse
GreEN mouse
- green mouse
24 không có
  Green mouse
GreEN mouse
- green mouse
36 trả về một giá trị trình bao phức tạp là một ngày và một phương thức và hàm băm cùng một lúc

kết_với

Trả về xem chuỗi này có kết thúc bằng chuỗi con được chỉ định trong tham số hay không. Ví dụ:

  Green mouse
GreEN mouse
- green mouse
37 trả về boolean
<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
9. Ngoài ra,
  Green mouse
GreEN mouse
- green mouse
39 sẽ trả về
<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
9

ensure_ends_with

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 21

Nếu chuỗi không kết thúc bằng chuỗi con được chỉ định làm tham số thứ nhất, nó sẽ thêm nó vào sau chuỗi, nếu không, nó sẽ trả về chuỗi ban đầu. Ví dụ: cả

  Green mouse
GreEN mouse
- green mouse
41 và
  Green mouse
GreEN mouse
- green mouse
42 đều trả về
  Green mouse
GreEN mouse
- green mouse
43

ensure_starts_with

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 21

Nếu chuỗi không bắt đầu bằng chuỗi con được chỉ định làm tham số thứ nhất, nó sẽ thêm nó trước chuỗi, nếu không, nó sẽ trả về chuỗi ban đầu. Ví dụ: cả

  Green mouse
GreEN mouse
- green mouse
44 và
  Green mouse
GreEN mouse
- green mouse
45 đều trả về
  Green mouse
GreEN mouse
- green mouse
46

Nếu bạn chỉ định hai tham số, thì tham số thứ nhất được hiểu là biểu thức chính quy Java và nếu nó không khớp với phần đầu của chuỗi, thì chuỗi được chỉ định làm tham số thứ 2 sẽ được thêm vào trước chuỗi. Ví dụ:

  Green mouse
GreEN mouse
- green mouse
47 sẽ kiểm tra xem chuỗi có bắt đầu bằng thứ gì đó khớp với
  Green mouse
GreEN mouse
- green mouse
48 hay không (lưu ý rằng không cần
  Green mouse
GreEN mouse
- green mouse
49) và nếu không, nó sẽ thêm vào trước
  Green mouse
GreEN mouse
- green mouse
50

Phương pháp này cũng chấp nhận một thứ 3. Khi gọi với 2 tham số ngụ ý

  Green mouse
GreEN mouse
- green mouse
51 ở đó (i. e. , chế độ biểu thức chính quy), bạn hiếm khi cần điều này. Một trường hợp đáng chú ý là khi bạn không muốn tham số thứ nhất được hiểu là biểu thức chính quy, chỉ ở dạng văn bản thuần túy, nhưng bạn muốn so sánh không phân biệt chữ hoa chữ thường, trong trường hợp đó, bạn sẽ sử dụng
  Green mouse
GreEN mouse
- green mouse
52 làm tham số thứ 3

thoát

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 24

Thoát giá trị bằng hiện tại và ngăn tự động thoát giá trị được trả về (để tránh thoát kép). Do tự động thoát, bạn thường chỉ cần điều này khi tự động thoát bị tắt

Mẫu

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}

đầu ra

R&D
R&D

Trong các mẫu, nơi tự động thoát được bật, việc sử dụng nó là không cần thiết

Mẫu

  Green mouse
GreEN mouse
- green mouse
0

đầu ra

  Green mouse
GreEN mouse
- green mouse
1

Tính năng tích hợp sẵn này hoạt động bằng cách chuyển đổi giá trị chuỗi thành a , bằng cách thoát chuỗi bằng định dạng đầu ra hiện tại và sử dụng kết quả làm đánh dấu. Giá trị đầu ra đánh dấu kết quả thuộc về định dạng đầu ra hiện tại tại thời điểm gọi

Tính năng tích hợp sẵn này cũng có thể được áp dụng cho các giá trị đầu ra đánh dấu, giá trị này sẽ bỏ qua mà không thay đổi, miễn là giá trị đầu ra đánh dấu đầu vào thuộc về định dạng đầu ra hiện tại. Nếu không, thì đánh dấu phải được chuyển đổi sang định dạng đầu ra hiện tại (kể từ 2. 3. 24) sẽ chỉ thành công nếu giá trị đó được tạo bằng cách thoát khỏi văn bản thuần túy (thường là với

  Green mouse
GreEN mouse
- green mouse
53)

Không thể sử dụng tích hợp sẵn này khi định dạng đầu ra hiện tại là một. Một nỗ lực để làm như vậy sẽ gây ra một

Tích hợp sẵn này không liên quan đến các chỉ thị

  Green mouse
GreEN mouse
- green mouse
54 và
  Green mouse
GreEN mouse
- green mouse
55 không dùng nữa. Trên thực tế, trình phân tích cú pháp sẽ ngăn việc sử dụng chúng ở cùng một nơi để tránh nhầm lẫn

các nhóm

Điều này chỉ được sử dụng với kết quả của

  Green mouse
GreEN mouse
- green mouse
56 tích hợp. Thấy

html (không dùng nữa)

Ghi chú

Tính năng tích hợp sẵn này không được dùng nữa bởi cơ chế thoát tự động được giới thiệu trong 2. 3. 24. Để tránh thoát kép và nhầm lẫn nói chung, sử dụng tính năng tích hợp sẵn này ở những nơi đang kích hoạt tính năng thoát tự động. Để giúp di chuyển, tích hợp này âm thầm bỏ qua HTML mà không thay đổi chúng

Chuỗi dưới dạng đánh dấu HTML. Đó là, chuỗi với tất cả

  •   Green mouse
    GreEN mouse
    - green mouse
    57 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    58
  •   Green mouse
    GreEN mouse
    - green mouse
    59 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    60
  •   Green mouse
    GreEN mouse
    - green mouse
    61 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    62
  • <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    9 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    64
  •   Green mouse
    GreEN mouse
    - green mouse
    65 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    66 nếu lập trình viên phải 2. 3. 24 hoặc cao hơn (cũng như nếu nó được đặt thành 2. 3. 20 trở lên và bạn ở bên ngoài một chuỗi ký tự). Nếu không,
      Green mouse
    GreEN mouse
    - green mouse
    65 sẽ không được thay thế, vì vậy bạn phải sử dụng dấu ngoặc kép (
    <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    9, không phải
      Green mouse
    GreEN mouse
    - green mouse
    65) để trích dẫn các giá trị thuộc tính mà bạn muốn chèn giá trị một cách an toàn

Mẫu

  Green mouse
GreEN mouse
- green mouse
2

Cảnh báo

Khi chèn giá trị của một thuộc tính, luôn trích dẫn nó, nếu không nó có thể bị kẻ tấn công lợi dụng. Cái này sai.

  Green mouse
GreEN mouse
- green mouse
71. cái này tốt.
  Green mouse
GreEN mouse
- green mouse
72

Lưu ý rằng trong các trang HTML, thông thường bạn muốn sử dụng tính năng tích hợp này cho tất cả các phép nội suy. Bạn có thể tiết kiệm được nhiều thời gian đánh máy và giảm bớt khả năng mắc lỗi do vô tình bằng cách sử dụng chỉ thị

  Green mouse
GreEN mouse
- green mouse
54

Chỉ số

Trả về chỉ mục trong chuỗi này của lần xuất hiện đầu tiên của chuỗi con đã chỉ định. Ví dụ:

  Green mouse
GreEN mouse
- green mouse
74 sẽ trả về 1 (đừng quên rằng chỉ số của ký tự đầu tiên là 0). Ngoài ra, bạn có thể chỉ định chỉ mục để bắt đầu tìm kiếm từ.
  Green mouse
GreEN mouse
- green mouse
75 sẽ trả về 4. Không có hạn chế về giá trị số của tham số thứ hai. nếu nó âm, nó có tác dụng tương tự như thể nó bằng 0 và nếu nó lớn hơn độ dài của chuỗi này, nó có tác dụng tương tự như khi nó bằng độ dài của chuỗi này. Giá trị thập phân sẽ được cắt bớt thành số nguyên

Nếu tham số thứ nhất không xuất hiện dưới dạng chuỗi con trong chuỗi này (bắt đầu từ chỉ mục đã cho, nếu bạn sử dụng tham số thứ hai), thì nó sẽ trả về -1

j_string

Thoát chuỗi bằng các quy tắc thoát của chuỗi ký tự ngôn ngữ Java, vì vậy sẽ an toàn khi chèn giá trị vào chuỗi ký tự. Lưu ý rằng nó sẽ không thêm dấu ngoặc kép xung quanh giá trị được chèn;

Tất cả các ký tự dưới điểm mã 0x20 sẽ được thoát. Khi chúng không có trình tự thoát riêng trong ngôn ngữ Java (như

  Green mouse
GreEN mouse
- green mouse
76,
  Green mouse
GreEN mouse
- green mouse
77, v.v. ), chúng sẽ được thay thế bằng một lối thoát UNICODE (
R&D
R&D
3)

Thí dụ

Mẫu

  Green mouse
GreEN mouse
- green mouse
3

sẽ xuất

đầu ra

  Green mouse
GreEN mouse
- green mouse
4

js_string

Thoát khỏi chuỗi bằng các quy tắc thoát của chuỗi ký tự ngôn ngữ JavaScript, vì vậy sẽ an toàn khi chèn giá trị vào chuỗi ký tự. Lưu ý rằng nó sẽ không thêm dấu ngoặc kép xung quanh giá trị được chèn;

Cảnh báo

Khi chèn vào một ký tự chuỗi ký tự JavaScript bên trong thuộc tính HTML, bạn cũng phải thoát giá trị bằng cách thoát HTML. Do đó, bạn không có thoát HTML tự động, điều này là SAI.

  Green mouse
GreEN mouse
- green mouse
79, và điều này thật tuyệt.
  Green mouse
GreEN mouse
- green mouse
80

Thí dụ

Mẫu

  Green mouse
GreEN mouse
- green mouse
5

sẽ xuất

đầu ra

  Green mouse
GreEN mouse
- green mouse
6

Các quy tắc thoát chính xác là

  • <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    9 được thoát thành
      Green mouse
    GreEN mouse
    - green mouse
    82

  •   Green mouse
    GreEN mouse
    - green mouse
    65 được thoát thành
      Green mouse
    GreEN mouse
    - green mouse
    84

  • R&D
    R&D
    0 được thoát thành
      Green mouse
    GreEN mouse
    - green mouse
    86

  •   Green mouse
    GreEN mouse
    - green mouse
    87 được thoát dưới dạng
      Green mouse
    GreEN mouse
    - green mouse
    88 nếu
      Green mouse
    GreEN mouse
    - green mouse
    87 ở ngay sau
      Green mouse
    GreEN mouse
    - green mouse
    57 trong chuỗi đã thoát hoặc nếu nó ở đầu chuỗi đã thoát

  •   Green mouse
    GreEN mouse
    - green mouse
    59 được thoát là
      Green mouse
    GreEN mouse
    - green mouse
    92 nếu
      Green mouse
    GreEN mouse
    - green mouse
    59 ngay sau
      Green mouse
    GreEN mouse
    - green mouse
    94 hoặc
      Green mouse
    GreEN mouse
    - green mouse
    95 trong chuỗi thoát hoặc nếu nó ở đầu chuỗi thoát hoặc nếu chỉ có một
      Green mouse
    GreEN mouse
    - green mouse
    96 hoặc
    <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    3 trước nó ở đầu chuỗi thoát

  •   Green mouse
    GreEN mouse
    - green mouse
    57 được thoát dưới dạng
      Green mouse
    GreEN mouse
    - green mouse
    99 nếu theo sau nó là
    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    00 hoặc
    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    01 trong chuỗi đã thoát hoặc nếu nó ở cuối chuỗi đã thoát

  • Các ký tự điều khiển trong phạm vi điểm mã U+0000. U+001f và U+007f. U+009f được thoát dưới dạng

    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    02,
      Green mouse
    GreEN mouse
    - green mouse
    76, v.v. hoặc như
    R&D
    R&D
    2 khi không có lối thoát đặc biệt nào cho chúng trong JavaScript

  • Các ký tự điều khiển có điểm mã U+2028 (Dòng phân cách) và U+2029 (Dấu phân cách đoạn văn) được thoát dưới dạng

    R&D
    R&D
    3, vì chúng là các ngắt dòng mã nguồn trong ECMAScript

json_string

Thoát khỏi chuỗi bằng các quy tắc thoát của chuỗi ký tự ngôn ngữ JSON, vì vậy sẽ an toàn khi chèn giá trị vào chuỗi ký tự. Lưu ý rằng nó sẽ không thêm dấu ngoặc kép xung quanh giá trị được chèn;

Điều này sẽ không thoát khỏi

  Green mouse
GreEN mouse
- green mouse
65 ký tự, vì các chuỗi JSON phải được trích dẫn bằng
<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
9

Các quy tắc thoát gần giống với các quy tắc. Sự khác biệt là

  Green mouse
GreEN mouse
- green mouse
65 hoàn toàn không được thoát, rằng
  Green mouse
GreEN mouse
- green mouse
59 được thoát thành
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
11 (không phải là
  Green mouse
GreEN mouse
- green mouse
92) và rằng các lần thoát
R&D
R&D
3 được sử dụng thay vì các lần thoát
R&D
R&D
2

giữ_sau

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 21

Loại bỏ phần của chuỗi không xuất hiện sau lần xuất hiện đầu tiên của chuỗi con đã cho. Ví dụ

Mẫu

  Green mouse
GreEN mouse
- green mouse
7

sẽ in

đầu ra

  Green mouse
GreEN mouse
- green mouse
8

Nếu không tìm thấy chuỗi tham số sẽ trả về chuỗi rỗng. Nếu chuỗi tham số là chuỗi có độ dài 0, nó sẽ trả về chuỗi ban đầu không thay đổi

Phương thức này chấp nhận một tùy chọn, làm tham số thứ 2 của nó

Mẫu

  Green mouse
GreEN mouse
- green mouse
9

sẽ in

đầu ra

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
0

keep_after_last

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 22

Giống như , nhưng giữ phần sau lần xuất hiện cuối cùng của tham số, thay vì sau lần xuất hiện đầu tiên. Thí dụ

Mẫu

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
1

sẽ in

đầu ra

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
2

trong khi với

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
15 bạn sẽ nhận được
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
17

giữ_trước

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 21

Xóa phần của chuỗi bắt đầu bằng chuỗi con đã cho. Ví dụ

Mẫu

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
3

sẽ in

đầu ra

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
4

Nếu không tìm thấy chuỗi tham số sẽ trả về chuỗi ban đầu không thay đổi. Nếu chuỗi tham số là chuỗi có độ dài 0, nó sẽ trả về một chuỗi rỗng

Phương thức này chấp nhận một tùy chọn, làm tham số thứ 2 của nó

Mẫu

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
5

sẽ in

đầu ra

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
6

keep_b Before_last

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 22

Tương tự như , nhưng giữ phần trước lần xuất hiện cuối cùng của tham số, thay vì sau lần xuất hiện đầu tiên. Thí dụ

Mẫu

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
7

sẽ in

đầu ra

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
8

trong khi với

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
18 bạn sẽ nhận được
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
20

last_index_of

Trả về chỉ mục trong chuỗi này của lần xuất hiện cuối cùng (ngoài cùng bên phải) của chuỗi con đã chỉ định. Nó trả về chỉ số của ký tự đầu tiên (ngoài cùng bên trái) của chuỗi con. Ví dụ.

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
21 sẽ trả về 3. Ngoài ra, bạn có thể chỉ định chỉ mục để bắt đầu tìm kiếm từ. Ví dụ,
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
22 sẽ trả về 0. Lưu ý rằng tham số thứ hai cho biết chỉ số tối đa của phần đầu của chuỗi con. Không có hạn chế về giá trị số của tham số thứ hai. nếu nó âm, nó có tác dụng tương tự như thể nó bằng 0 và nếu nó lớn hơn độ dài của chuỗi này, nó có tác dụng tương tự như khi nó bằng độ dài của chuỗi này. Giá trị thập phân sẽ được cắt bớt thành số nguyên

Nếu tham số thứ nhất không xuất hiện dưới dạng chuỗi con trong chuỗi này (trước chỉ mục đã cho, nếu bạn sử dụng tham số thứ hai), thì nó sẽ trả về -1

left_pad

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 1

Nếu nó được sử dụng với 1 tham số, thì nó sẽ chèn khoảng trắng vào đầu chuỗi cho đến khi đạt đến độ dài được chỉ định làm tham số. Nếu chuỗi đã dài hoặc dài hơn độ dài đã chỉ định thì không có gì. Ví dụ, điều này

Mẫu

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
9

sẽ xuất cái này

đầu ra

  Green Mouse
Green Mouse
0

Nếu nó được sử dụng với 2 tham số, thì tham số thứ nhất có nghĩa giống như khi bạn đang sử dụng tích hợp sẵn chỉ với 1 tham số và tham số thứ hai chỉ định nội dung cần chèn thay vì ký tự khoảng trắng. Ví dụ

Mẫu

  Green Mouse
Green Mouse
1

sẽ xuất cái này

đầu ra

  Green Mouse
Green Mouse
2

Tham số thứ 2 có thể là một chuỗi có độ dài lớn hơn 1. Sau đó, chuỗi sẽ được chèn định kỳ, ví dụ

Mẫu

  Green Mouse
Green Mouse
3

sẽ xuất cái này

đầu ra

  Green Mouse
Green Mouse
4

Tham số thứ 2 phải là một giá trị chuỗi và phải dài ít nhất 1 ký tự

chiều dài

Số ký tự trong chuỗi

chữ thường

Phiên bản chữ thường của chuỗi, sử dụng các quy tắc phụ thuộc vào

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
4 hiện tại (ngôn ngữ, quốc gia). Ví dụ:
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
24 sẽ là
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
25 ở hầu hết các ngôn ngữ, nhưng sẽ là
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
26 ở ngôn ngữ Thổ Nhĩ Kỳ (
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
27) (lưu ý dấu chấm bị thiếu phía trên một số chữ "i")

Để chuyển đổi sang chữ thường cho việc sử dụng máy tính (trái ngược với tiêu dùng của con người), hãy sử dụng thay thế

diêm

Đây là một "power user" được tích hợp sẵn. Bỏ qua nếu bạn không biết

Tính năng tích hợp này xác định xem chuỗi có khớp chính xác với mẫu hay không. Ngoài ra, nó trả về danh sách các chuỗi con phù hợp. Giá trị trả về là một giá trị đa loại

  • Boolean.

    <#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
    <#assign someDate = "1995-10-25"?date.xs>
    <#assign someTime = "15:05:30"?time.xs>
    <#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>
    
    <#-- Parsing ISO 8601 (both extended and basic formats): -->
    <#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
    <#assign someDatetime = "19951025T1505"?datetime.iso>
    
    <#-- Parsing with SimpleDateFormat patterns: -->
    <#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
    <#assign someTime = "15:05:30"?time("HH:mm:ss")>
    <#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>
    
    <#-- Parsing with custom date formats: -->
    <#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
    9, nếu toàn bộ chuỗi khớp với mẫu, nếu không thì
    <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    0. Ví dụ:
    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    31 là
    <#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
    <#assign someDate = "1995-10-25"?date.xs>
    <#assign someTime = "15:05:30"?time.xs>
    <#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>
    
    <#-- Parsing ISO 8601 (both extended and basic formats): -->
    <#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
    <#assign someDatetime = "19951025T1505"?datetime.iso>
    
    <#-- Parsing with SimpleDateFormat patterns: -->
    <#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
    <#assign someTime = "15:05:30"?time("HH:mm:ss")>
    <#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>
    
    <#-- Parsing with custom date formats: -->
    <#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
    9, nhưng
    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    33 là
    <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    0

  • Sự liên tiếp. danh sách các chuỗi con phù hợp của chuỗi. Có thể là một chuỗi độ dài 0

Ví dụ

Mẫu

  Green Mouse
Green Mouse
5

sẽ in

đầu ra

  Green Mouse
Green Mouse
6

Nếu biểu thức chính quy chứa các nhóm (dấu ngoặc đơn), thì bạn có thể truy cập chúng bằng hàm tích hợp sẵn

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
35

Mẫu

  Green Mouse
Green Mouse
7

Điều này sẽ in

đầu ra

  Green Mouse
Green Mouse
8

Lưu ý về hành vi của

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
35 tích hợp

  • Nó hoạt động cả với khớp chuỗi con và với kết quả khớp toàn bộ chuỗi (như được hiển thị trong ví dụ trên)

  • Mục đầu tiên trong chuỗi mà

    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    35 trả về là toàn bộ chuỗi con khớp với biểu thức chính quy. Do đó, chỉ số của nhóm biểu thức chính quy rõ ràng đầu tiên (hay nói cách khác, của
    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    38 đầu tiên trong biểu thức chính quy) là 1 chứ không phải 0. Ngoài ra, vì điều này, kích thước của chuỗi nhiều hơn số nhóm biểu thức chính quy rõ ràng

  • Kích thước của chuỗi được trả về bởi

    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    35 chỉ phụ thuộc vào số nhóm rõ ràng trong biểu thức chính quy và do đó, nó sẽ giống nhau (khác 0) ngay cả khi không tìm thấy kết quả khớp cho biểu thức chính quy. Cố gắng truy cập một mục của chuỗi (như trong
    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    40) khi đã khớp sẽ gây ra lỗi. Vì vậy, trước khi truy cập các nhóm, bạn phải luôn kiểm tra xem có bất kỳ sự trùng khớp nào không (như trong
    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    41)

  • Khi có sự khớp với biểu thức chính quy, nhưng không khớp với một nhóm rõ ràng nhất định bên trong biểu thức chính quy, thì đối với nhóm đó, chuỗi sẽ chứa chuỗi có độ dài 0. Vì vậy, việc truy cập vào một nhóm không khớp với gì là an toàn, miễn là biểu thức chính quy chứa khớp với một cái gì đó

  Green mouse
GreEN mouse
- green mouse
56 chấp nhận tham số thứ 2 tùy chọn,. Lưu ý rằng nó không hỗ trợ cờ
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
43 và bỏ qua cờ
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
44

no_esc

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 24

Ngăn chặn tự động thoát của một giá trị. Ví dụ

Mẫu

  Green Mouse
Green Mouse
9

đầu ra

<#if "piceous"?contains("ice")>It contains "ice"
0

Điều này hoạt động bằng cách chuyển đổi giá trị chuỗi thành a , sử dụng chuỗi làm đánh dấu như hiện tại và thuộc về hiện tại tại điểm gọi

Tính năng tích hợp sẵn này cũng có thể được áp dụng cho các giá trị đầu ra đánh dấu, giá trị này sẽ bỏ qua mà không thay đổi, miễn là giá trị đầu ra đánh dấu đầu vào thuộc về định dạng đầu ra hiện tại. Nếu không, thì đánh dấu phải được chuyển đổi sang định dạng đầu ra hiện tại (kể từ 2. 3. 24) sẽ chỉ thành công nếu giá trị đó được tạo bằng cách thoát khỏi văn bản thuần túy (thường là với

  Green mouse
GreEN mouse
- green mouse
53)

Không thể sử dụng tích hợp sẵn này khi định dạng đầu ra hiện tại là một. Một nỗ lực để làm như vậy sẽ gây ra một

Tích hợp sẵn này không liên quan đến các chỉ thị

  Green mouse
GreEN mouse
- green mouse
54 và
  Green mouse
GreEN mouse
- green mouse
55 không dùng nữa. Trên thực tế, trình phân tích cú pháp sẽ ngăn việc sử dụng chúng ở cùng một nơi để tránh nhầm lẫn

số

Chuỗi được chuyển đổi thành giá trị số. Số phải ở định dạng "ngôn ngữ máy tính". Nghĩa là, nó phải ở dạng độc lập ngôn ngữ, trong đó dấu phân cách thập phân là dấu chấm và không có nhóm

Phần tích hợp này nhận dạng các số ở định dạng mà ngôn ngữ mẫu FreeMarker sử dụng. Ngoài ra, nó công nhận ký hiệu khoa học (e. g.

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
48,
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
49). Kể từ FreeMarker 2. 3. 21, nó cũng nhận ra tất cả các định dạng số Lược đồ XML, như
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
50,
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
51,
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
52, cộng với các định dạng gốc Java
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
53 và
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
54

Nếu chuỗi không ở định dạng phù hợp, một lỗi sẽ hủy bỏ quá trình xử lý mẫu khi bạn cố gắng truy cập tích hợp sẵn này

Trên thực tế, chuỗi được phân tích cú pháp bằng phương pháp

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
55 của
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
56 hiện tại, đây là cài đặt cấu hình. Tuy nhiên, phương pháp đó sẽ hoạt động tương tự như mô tả ở trên

thay thế

Nó được sử dụng để thay thế tất cả các lần xuất hiện của một chuỗi trong chuỗi ban đầu bằng một chuỗi khác. Nó không đối phó với ranh giới từ. Ví dụ

Mẫu

<#if "piceous"?contains("ice")>It contains "ice"
1

sẽ in

đầu ra

<#if "piceous"?contains("ice")>It contains "ice"
2

Việc thay thế diễn ra theo thứ tự từ trái sang phải. Điều này có nghĩa là điều này

Mẫu

<#if "piceous"?contains("ice")>It contains "ice"
3

sẽ in

đầu ra

<#if "piceous"?contains("ice")>It contains "ice"
4

Nếu tham số đầu tiên là một chuỗi rỗng, thì tất cả các lần xuất hiện của chuỗi rỗng sẽ được thay thế, chẳng hạn như

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
57 sẽ ước tính thành
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
58

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
59 chấp nhận tùy chọn , làm tham số thứ 3 của nó

bàn phím bên phải

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 1. Nó không tồn tại trong 2. 3

Điều này giống như , nhưng nó chèn các ký tự vào cuối chuỗi thay vì đầu chuỗi

Thí dụ

Mẫu

<#if "piceous"?contains("ice")>It contains "ice"
5

Điều này sẽ xuất ra điều này

đầu ra

<#if "piceous"?contains("ice")>It contains "ice"
6

xóa_bắt đầu

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 21

Xóa chuỗi con tham số khỏi đầu chuỗi hoặc trả về chuỗi gốc nếu nó không bắt đầu bằng chuỗi con tham số. Ví dụ

Mẫu

<#if "piceous"?contains("ice")>It contains "ice"
7

sẽ in

đầu ra

<#if "piceous"?contains("ice")>It contains "ice"
8

remove_ending

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 21

Xóa chuỗi con tham số khỏi phần cuối của chuỗi hoặc trả về chuỗi gốc nếu nó không kết thúc bằng chuỗi con tham số. Ví dụ

Mẫu

<#if "piceous"?contains("ice")>It contains "ice"
9

sẽ in

đầu ra

It contains "ice"
0

rtf (không dùng nữa)

Ghi chú

Tính năng tích hợp sẵn này không được dùng nữa bởi cơ chế thoát tự động được giới thiệu trong 2. 3. 24. Để tránh thoát kép và nhầm lẫn nói chung, sử dụng tính năng tích hợp sẵn này ở những nơi đang kích hoạt tính năng thoát tự động. Để giúp di chuyển, tích hợp này âm thầm bỏ qua RTF mà không thay đổi chúng

Chuỗi ở dạng văn bản có định dạng (văn bản RTF). Đó là, chuỗi với tất cả

  • R&D
    R&D
    0 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    86

  • ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    63 được thay thế bằng
    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    64

  • ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    65 được thay thế bằng
    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    66

tách ra

Nó được sử dụng để tách một chuỗi thành một chuỗi các chuỗi dọc theo các lần xuất hiện của chuỗi khác. Ví dụ

Mẫu

It contains "ice"
1

sẽ in

đầu ra

It contains "ice"
2

Lưu ý rằng giả định rằng tất cả các lần xuất hiện của dấu phân cách đều ở trước một mục mới (ngoại trừ cờ

  Green mouse
GreEN mouse
- green mouse
51 - xem sau), do đó

Mẫu

It contains "ice"
3

sẽ in

đầu ra

It contains "ice"
4

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
68 chấp nhận một tùy chọn , là tham số thứ 2 của nó. Có một trục trặc lịch sử với cờ
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
44 (cụm từ thông dụng);

Nếu tham số đầu tiên là một chuỗi rỗng, chuỗi sẽ được chia thành các ký tự (kể từ FreeMarker 2. 3. 28 - trước đó điều này chỉ hoạt động với cờ

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
44)

Ghi chú

Để kiểm tra xem một chuỗi có kết thúc bằng thứ gì đó hay không và nối thêm chuỗi khác, hãy sử dụng

bắt đầu với

Trả về nếu chuỗi này bắt đầu bằng chuỗi con đã chỉ định. Ví dụ:

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
74 trả về giá trị boolean
<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
9. Ngoài ra,
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
76 sẽ trả về
<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
9

Ghi chú

Để kiểm tra xem một chuỗi có bắt đầu bằng thứ gì đó hay không và thêm vào trước nó, hãy sử dụng

chuỗi (khi được sử dụng với giá trị chuỗi)

Không làm gì cả, chỉ trả về chuỗi nguyên trạng. Ngoại lệ là nếu giá trị là một giá trị đa loại (e. g. nó là cả chuỗi và chuỗi cùng một lúc), thì giá trị kết quả sẽ chỉ là một chuỗi đơn giản, không phải là giá trị nhiều loại. Điều này có thể được sử dụng để ngăn chặn các tạo tác của đa gõ

chuỗi con (không dùng nữa)

Ghi chú

Tính năng tích hợp này không được dùng nữa kể từ FreeMarker 2. 3. 21 bởi , như

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
79,
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
80 và
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
81

Một cảnh báo nếu bạn đang xử lý XML. Vì các biểu thức cắt lớp hoạt động cho cả chuỗi và chuỗi và do các nút XML thường là cả chuỗi và chuỗi cùng một lúc, nên biểu thức tương đương là

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
82 và
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
83, vì nếu không có
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
84, nó sẽ cắt chuỗi nút thay vì giá trị văn bản của

Ghi chú

Một số trường hợp sử dụng điển hình của việc cắt chuỗi được bao phủ bởi các tiện ích tích hợp sẵn. , , , , , , , , , ,

Tóm tắt.

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
91, cũng có thể gọi là
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
92

Một chuỗi con của chuỗi.

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
93 là chỉ số của ký tự đầu tiên. Nó phải là một số ít nhất là 0 và nhỏ hơn hoặc bằng với
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
94, nếu không, một lỗi sẽ hủy bỏ quá trình xử lý mẫu.
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
94 là chỉ mục của vị trí ký tự sau ký tự cuối cùng của chuỗi con, hay nói cách khác, nó lớn hơn chỉ mục của ký tự cuối cùng một bậc. Nó phải là một số ít nhất là 0 và nhỏ hơn hoặc bằng độ dài của chuỗi, nếu không, một lỗi sẽ hủy bỏ quá trình xử lý mẫu. Nếu bỏ qua
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
94, thì nó sẽ mặc định là độ dài của chuỗi. Nếu tham số là một số không phải là số nguyên thì chỉ phần nguyên của số đó sẽ được sử dụng

Thí dụ

Mẫu

It contains "ice"
5

Đầu ra

đầu ra

It contains "ice"
6

cắt tỉa

Chuỗi không có khoảng trắng ở đầu và cuối. Thí dụ

Mẫu

It contains "ice"
7

Đầu ra

đầu ra

It contains "ice"
8

cắt bớt, cắt ngắn_

Cắt bỏ phần cuối của chuỗi nếu điều đó là cần thiết để giữ nó dưới độ dài đã cho làm tham số và nối thêm chuỗi kết thúc (

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
97 theo mặc định) để chỉ ra rằng chuỗi đã bị cắt bớt. Ví dụ (giả sử cài đặt cấu hình FreeMarker mặc định)

Mẫu

It contains "ice"
9

đầu ra

<#-- The date_format, time_format and datetime_format settings must match this format! -->
<#assign someDate = "Oct 25, 1995"?date>
<#assign someTime = "3:05:30 PM"?time>
<#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>

<#-- Changing the setting value changes the expected format: -->
<#setting datetime_format="iso">
<#assign someDatetime = "1995-10-25T15:05"?datetime>
0

Những điều cần lưu ý ở trên

  • Chuỗi được trả về nếu độ dài của nó không vượt quá độ dài đã chỉ định (16 trong trường hợp này)

  • Khi chuỗi vượt quá độ dài đó, phần cuối của nó bị cắt theo cách sao cho cùng với chuỗi kết thúc được thêm vào (

    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    97 ở đây), chiều dài của nó sẽ không vượt quá 16. Độ dài kết quả có thể ngắn hơn 16, để nhìn đẹp hơn (xem sau). Trên thực tế, độ dài kết quả cũng có thể dài hơn độ dài tham số, khi độ dài mong muốn ngắn hơn chỉ riêng chuỗi dấu kết thúc, trong trường hợp đó, dấu kết thúc vẫn được trả về như cũ. Ngoài ra, một thuật toán khác với mặc định có thể chọn trả về một chuỗi dài hơn, vì tham số độ dài về nguyên tắc chỉ là gợi ý cho độ dài hình ảnh mong muốn

  • ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    99 thích cắt ở ranh giới từ hơn là ở giữa từ, tuy nhiên, nếu làm như vậy sẽ cho kết quả ngắn hơn 75% độ dài được chỉ định với đối số, thì nó sẽ quay lại cắt ở giữa từ. Trong dòng cuối cùng của ví dụ trên, "Đây [. ]" sẽ quá ngắn (11 < 16 * 75%), do đó, nó đã bị cắt giữa từ

  • Nếu vết cắt xảy ra ở ranh giới từ, thì có khoảng cách giữa phần cuối của từ và chuỗi kết thúc, nếu không thì không có khoảng cách giữa chúng. Chỉ khoảng trắng được coi là dấu tách từ, không phải dấu chấm câu, do đó, điều này thường mang lại kết quả trực quan

Điều chỉnh quy tắc cắt ngắn

Các quy tắc cắt ngắn có thể định cấu hình cao bằng cách đặt cài đặt cấu hình

  Green Mouse
Green Mouse
00. Điều này có thể được thực hiện bởi các lập trình viên, không phải tác giả mẫu, vì vậy để biết thêm chi tiết và ví dụ, vui lòng xem JavaDoc của

Quy tắc cắt ngắn cũng có thể bị ảnh hưởng ngay trong mẫu ở mức độ nhỏ hơn

  • Chỉ định xem việc cắt ngắn có xảy ra ở ranh giới từ hay không

    •   Green Mouse
      Green Mouse
      01 sẽ luôn cắt bớt ở ranh giới từ. Ví dụ,
        Green Mouse
      Green Mouse
      02 trả về "Đây [. ]", thay vì "Đây isonev[. ]" (như đã thấy trong ví dụ trước)

    •   Green Mouse
      Green Mouse
      03 sẽ cắt bớt ở bất kỳ ký tự nào, không chỉ ở cuối từ. Ví dụ,
        Green Mouse
      Green Mouse
      04 trả về "Đây là t[. ]", thay vì "Đây là [. ]" (như đã thấy trong ví dụ trước). Điều này có xu hướng cung cấp độ dài chuỗi gần với độ dài được chỉ định, nhưng vẫn không phải là độ dài chính xác, vì nó loại bỏ khoảng trắng trước chuỗi kết thúc và thêm lại khoảng trắng nếu chúng ta ở ngay sau từ, v.v.

  • Chỉ định chuỗi kết thúc (thay vì dựa vào mặc định của nó).

    ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    99 và tất cả các phần dựng sẵn của
      Green Mouse
    Green Mouse
    06 đều có một tham số tùy chọn bổ sung cho nó. Sau đó, một tham số tùy chọn khác có thể chỉ định độ dài giả định của chuỗi kết thúc (nếu không thì độ dài thực của nó sẽ được sử dụng). Nếu bạn thấy mình thường xuyên chỉ định chuỗi kết thúc, thì chắc chắn các giá trị mặc định sẽ được định cấu hình thay thế (thông qua
      Green Mouse
    Green Mouse
    07 - xem trước đó). Thí dụ

    Mẫu

    <#-- The date_format, time_format and datetime_format settings must match this format! -->
    <#assign someDate = "Oct 25, 1995"?date>
    <#assign someTime = "3:05:30 PM"?time>
    <#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>
    
    <#-- Changing the setting value changes the expected format: -->
    <#setting datetime_format="iso">
    <#assign someDatetime = "1995-10-25T15:05"?datetime>
    1

    đầu ra

    <#-- The date_format, time_format and datetime_format settings must match this format! -->
    <#assign someDate = "Oct 25, 1995"?date>
    <#assign someTime = "3:05:30 PM"?time>
    <#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>
    
    <#-- Changing the setting value changes the expected format: -->
    <#setting datetime_format="iso">
    <#assign someDatetime = "1995-10-25T15:05"?datetime>
    2

    Khi chuỗi ký tự kết thúc bắt đầu bằng dấu chấm (_______32_______08) hoặc dấu chấm lửng (

      Green Mouse
    Green Mouse
    09), thuật toán mặc định sẽ xóa các dấu chấm và dấu chấm lửng mà ký tự kết thúc chạm vào, để tránh kết thúc bằng nhiều hơn 3 dấu chấm ở cuối

    Mẫu

    <#-- The date_format, time_format and datetime_format settings must match this format! -->
    <#assign someDate = "Oct 25, 1995"?date>
    <#assign someTime = "3:05:30 PM"?time>
    <#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>
    
    <#-- Changing the setting value changes the expected format: -->
    <#setting datetime_format="iso">
    <#assign someDatetime = "1995-10-25T15:05"?datetime>
    3

    đầu ra

    <#-- The date_format, time_format and datetime_format settings must match this format! -->
    <#assign someDate = "Oct 25, 1995"?date>
    <#assign someTime = "3:05:30 PM"?time>
    <#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>
    
    <#-- Changing the setting value changes the expected format: -->
    <#setting datetime_format="iso">
    <#assign someDatetime = "1995-10-25T15:05"?datetime>
    4

Sử dụng đánh dấu làm chuỗi kết thúc

Mỗi phần cắt ngắn được tích hợp sẵn có một biến thể có tên kết thúc bằng

  Green Mouse
Green Mouse
10 (đối với đánh dấu). Những điều này cho phép sử dụng đánh dấu (như HTML) làm dấu kết thúc, rất hữu ích nếu bạn muốn dấu kết thúc được tạo kiểu khác với văn bản bị cắt bớt. Theo mặc định, dấu kết thúc đánh dấu là
  Green Mouse
Green Mouse
11, (trong đó
  Green Mouse
Green Mouse
12 in ký tự dấu chấm lửng), nhưng tất nhiên điều này có thể được thay đổi bằng cài đặt cấu hình
  Green Mouse
Green Mouse
00 (xem trước đó). Ví dụ (xem các biến được sử dụng trong ví dụ trước)

Mẫu

<#-- The date_format, time_format and datetime_format settings must match this format! -->
<#assign someDate = "Oct 25, 1995"?date>
<#assign someTime = "3:05:30 PM"?time>
<#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>

<#-- Changing the setting value changes the expected format: -->
<#setting datetime_format="iso">
<#assign someDatetime = "1995-10-25T15:05"?datetime>
5

đầu ra

<#-- The date_format, time_format and datetime_format settings must match this format! -->
<#assign someDate = "Oct 25, 1995"?date>
<#assign someTime = "3:05:30 PM"?time>
<#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>

<#-- Changing the setting value changes the expected format: -->
<#setting datetime_format="iso">
<#assign someDatetime = "1995-10-25T15:05"?datetime>
6

Lưu ý ở trên rằng chuỗi kết thúc được coi là chỉ dài 3 ký tự (

  Green Mouse
Green Mouse
14,
  Green Mouse
Green Mouse
15,
  Green Mouse
Green Mouse
16) bởi các phần bổ trợ cắt ngắn, bởi vì bên trong chuỗi kết thúc, chúng chỉ đếm các ký tự bên ngoài thẻ và nhận xét HTML/XML, đồng thời chúng cũng có thể . (Điều tương tự cũng áp dụng khi họ quyết định xem dấu kết thúc bắt đầu bằng dấu chấm hay dấu chấm lửng; các thẻ/nhận xét trước đó bị bỏ qua, v.v. )

Nếu một dấu kết thúc đánh dấu được sử dụng (như trên), giá trị trả về của _

  Green Mouse
Green Mouse
17 tích hợp cũng sẽ được đánh dấu, điều đó có nghĩa là thoát tự động sẽ không thoát khỏi nó. Tất nhiên, nội dung của chuỗi bị cắt ngắn vẫn sẽ tự động thoát

Mẫu

<#-- The date_format, time_format and datetime_format settings must match this format! -->
<#assign someDate = "Oct 25, 1995"?date>
<#assign someTime = "3:05:30 PM"?time>
<#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>

<#-- Changing the setting value changes the expected format: -->
<#setting datetime_format="iso">
<#assign someDatetime = "1995-10-25T15:05"?datetime>
7

đầu ra

<#-- The date_format, time_format and datetime_format settings must match this format! -->
<#assign someDate = "Oct 25, 1995"?date>
<#assign someTime = "3:05:30 PM"?time>
<#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>

<#-- Changing the setting value changes the expected format: -->
<#setting datetime_format="iso">
<#assign someDatetime = "1995-10-25T15:05"?datetime>
8

giải nén_first

ngược lại với. Chuỗi có từ đầu tiên của chuỗi không được viết hoa. Lưu ý rằng điều này sử dụng chuyển đổi nhận biết ngôn ngữ, nghĩa là kết quả có thể khác nhau tùy thuộc vào

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
4 hiện tại (ngôn ngữ, quốc gia)

chữ hoa

Phiên bản chữ hoa của chuỗi, sử dụng các quy tắc phụ thuộc vào

<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
4 hiện tại (ngôn ngữ, quốc gia). Ví dụ:
  Green Mouse
Green Mouse
21 sẽ là
  Green Mouse
Green Mouse
22 ở hầu hết các ngôn ngữ, nhưng với ngôn ngữ Thổ Nhĩ Kỳ, nó sẽ là
  Green Mouse
Green Mouse
23 (lưu ý dấu chấm phía trên chữ "I" thứ 2)

Để chuyển đổi sang chữ hoa cho tiêu dùng máy tính (trái ngược với tiêu dùng của con người), hãy sử dụng thay thế

url

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 1. Nó không tồn tại trong 2. 3

Chuỗi sau khi thoát URL. Điều này có nghĩa là tất cả các ký tự URL không phải US-ASCII và URL dành riêng sẽ được thoát bằng

  Green Mouse
Green Mouse
25. Ví dụ

Mẫu

<#-- The date_format, time_format and datetime_format settings must match this format! -->
<#assign someDate = "Oct 25, 1995"?date>
<#assign someTime = "3:05:30 PM"?time>
<#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>

<#-- Changing the setting value changes the expected format: -->
<#setting datetime_format="iso">
<#assign someDatetime = "1995-10-25T15:05"?datetime>
9

Đầu ra sẽ là (giả sử rằng bộ ký tự được sử dụng để thoát là bộ ký tự tương thích US-ASCII)

đầu ra

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
0

Lưu ý rằng nó thoát khỏi tất cả các ký tự URL dành riêng (_______5_______87,

  Green Mouse
Green Mouse
27,
  Green mouse
GreEN mouse
- green mouse
61,. v.v.), vì vậy mã hóa này có thể được sử dụng để mã hóa các giá trị tham số truy vấn, chẳng hạn

Mẫu

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
1

Ghi chú

Ở trên, không cần mã hóa HTML (

  Green Mouse
Green Mouse
29), vì việc thoát URL sẽ thoát tất cả các ký tự HTML dành riêng. Nhưng xem. luôn trích dẫn giá trị thuộc tính và luôn có dấu ngoặc kép bình thường (_______2_______9), không bao giờ có dấu ngoặc kép nháy đơn (
  Green mouse
GreEN mouse
- green mouse
65), bởi vì dấu ngoặc kép nháy đơn không được thoát bởi URL thoát

Để thực hiện thoát URL, phải chọn URL sẽ được sử dụng để tính toán các phần thoát (

  Green Mouse
Green Mouse
25). Nếu bạn là tác giả trang HTML và bạn không thực sự hiểu điều này, đừng lo lắng. các lập trình viên nên định cấu hình FreeMarker để nó sử dụng bộ ký tự thích hợp theo mặc định ( lập trình viên. xem thêm bên dưới. ). Nếu bạn là người dùng có đầu óc kỹ thuật hơn, thì bạn có thể muốn biết rằng bộ ký tự được sử dụng được chỉ định bởi cài đặt
  Green Mouse
Green Mouse
33, cài đặt này có thể được đặt trong thời gian thực hiện mẫu (hoặc tốt nhất là sớm hơn bởi các lập trình viên). Ví dụ.

Mẫu

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
2

Hơn nữa, bạn có thể chỉ định rõ ràng một bộ ký tự cho một URL duy nhất thoát làm tham số cho bộ ký tự tích hợp

Mẫu

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
3

Nếu cài đặt sẵn

  Green Mouse
Green Mouse
34 không có tham số thì nó sẽ sử dụng bộ ký tự được chỉ định làm giá trị của cài đặt
  Green Mouse
Green Mouse
33. Cài đặt này phải được đặt bởi phần mềm kèm theo FreeMarker (e. g. một khung ứng dụng Web), bởi vì nó không được đặt (_______5_______00) theo mặc định. Nếu nó không được đặt, thì FreeMarker sẽ sử dụng lại giá trị của cài đặt
  Green Mouse
Green Mouse
37, giá trị này cũng không được đặt theo mặc định, do đó, đây lại là nhiệm vụ của phần mềm kèm theo. Nếu cài đặt
  Green Mouse
Green Mouse
37 cũng không được đặt, thì không thể thực thi cài đặt sẵn
  Green Mouse
Green Mouse
34 không tham số và nó sẽ gây ra lỗi thời gian thực hiện. Tất nhiên, tham số tích hợp sẵn
  Green Mouse
Green Mouse
34 luôn hoạt động

Có thể đặt

  Green Mouse
Green Mouse
33 trong mẫu bằng chỉ thị
  Green Mouse
Green Mouse
42, nhưng đó là cách làm không tốt, ít nhất là trong các ứng dụng MVC thực sự. Cài đặt
  Green Mouse
Green Mouse
37 không thể được đặt bằng lệnh
  Green Mouse
Green Mouse
42, vì vậy đó chắc chắn là nhiệm vụ của phần mềm kèm theo. Bạn có thể tìm thêm thông tin về điều này tại đây

url_path

Ghi chú

Tính năng tích hợp này khả dụng kể từ FreeMarker 2. 3. 21

Điều này giống như , ngoại trừ việc nó không thoát khỏi dấu gạch chéo (

  Green mouse
GreEN mouse
- green mouse
87) ký tự. Điều này có nghĩa là được sử dụng để chuyển đổi đường dẫn (như đường dẫn đến từ HĐH hoặc một số kho lưu trữ nội dung) sử dụng dấu gạch chéo (không phải dấu gạch chéo ngược. ) đến một đường dẫn có thể được chèn vào một URL. Lý do phổ biến nhất khiến việc chuyển đổi này cần thiết là tên thư mục hoặc tên tệp có thể chứa các chữ cái không phải US-ASCII (ký tự "quốc gia")

Ghi chú

Cũng giống như với , bộ ký tự thoát URL mong muốn (hoặc dự phòng, mã hóa đầu ra) phải được đặt trong cài đặt cấu hình FreeMarker, nếu không, bộ tích hợp sẵn sẽ báo lỗi. Hoặc, bạn phải chỉ định bộ ký tự như

  Green Mouse
Green Mouse
48

danh sách các từ

Một chuỗi chứa tất cả các từ của chuỗi theo thứ tự khi chúng xuất hiện trong chuỗi. Các từ là các chuỗi ký tự liên tục có chứa bất kỳ ký tự nào ngoại trừ. Thí dụ

Mẫu

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
4

sẽ xuất

đầu ra

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
5

xhtml (không dùng nữa)

Ghi chú

Tính năng tích hợp sẵn này không được dùng nữa bởi cơ chế thoát tự động được giới thiệu trong 2. 3. 24. Để tránh thoát kép và nhầm lẫn nói chung, sử dụng tính năng tích hợp sẵn này ở những nơi đang kích hoạt tính năng thoát tự động. Để giúp di chuyển, tích hợp này âm thầm bỏ qua HTML mà không thay đổi chúng

Chuỗi dưới dạng văn bản XHTML. Đó là, chuỗi với tất cả

  •   Green mouse
    GreEN mouse
    - green mouse
    57 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    58
  •   Green mouse
    GreEN mouse
    - green mouse
    59 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    60
  •   Green mouse
    GreEN mouse
    - green mouse
    61 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    62
  • <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    9 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    64
  •   Green mouse
    GreEN mouse
    - green mouse
    65 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    66

Sự khác biệt duy nhất giữa tích hợp sẵn này và tích hợp sẵn

  Green Mouse
Green Mouse
59 là
  Green Mouse
Green Mouse
60 tích hợp sẵn thoát
  Green mouse
GreEN mouse
- green mouse
65 dưới dạng
  Green mouse
GreEN mouse
- green mouse
66 thay vì dưới dạng
  Green Mouse
Green Mouse
63, vì một số trình duyệt cũ hơn không biết
  Green Mouse
Green Mouse
63

Cảnh báo

Khi chèn giá trị của một thuộc tính, luôn trích dẫn nó, nếu không nó có thể bị kẻ tấn công lợi dụng. Cái này sai.

  Green Mouse
Green Mouse
65. Đây là những điều tốt.
  Green Mouse
Green Mouse
66,
  Green Mouse
Green Mouse
67

xml (không dùng nữa)

Ghi chú

Tính năng tích hợp sẵn này không được dùng nữa bởi cơ chế thoát tự động được giới thiệu trong 2. 3. 24. Để tránh thoát kép và nhầm lẫn nói chung, sử dụng tính năng tích hợp sẵn này ở những nơi đang kích hoạt tính năng thoát tự động. Để giúp di chuyển, tích hợp sẵn này âm thầm bỏ qua XML và HTML mà không thay đổi chúng

Chuỗi dưới dạng văn bản XML. Đó là, chuỗi với tất cả

  •   Green mouse
    GreEN mouse
    - green mouse
    57 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    58
  •   Green mouse
    GreEN mouse
    - green mouse
    59 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    60
  •   Green mouse
    GreEN mouse
    - green mouse
    61 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    62
  • <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    9 được thay thế bằng
      Green mouse
    GreEN mouse
    - green mouse
    64
  •   Green mouse
    GreEN mouse
    - green mouse
    65 được thay thế bằng
      Green Mouse
    Green Mouse
    63

Cảnh báo

Khi chèn giá trị của một thuộc tính, luôn trích dẫn nó, nếu không nó có thể bị kẻ tấn công lợi dụng. Cái này sai.

  Green Mouse
Green Mouse
78. Đây là những điều tốt.
  Green Mouse
Green Mouse
79,
  Green Mouse
Green Mouse
80

cờ phổ biến

Nhiều chuỗi dựng sẵn chấp nhận một tham số chuỗi tùy chọn, cái gọi là "cờ". Trong chuỗi này, mỗi chữ cái ảnh hưởng đến một khía cạnh nhất định của hành vi tích hợp sẵn. Ví dụ: chữ cái

  Green Mouse
Green Mouse
81 có nghĩa là phần tích hợp sẵn không được phân biệt biến thể chữ thường và chữ hoa của cùng một chữ cái. Thứ tự của các chữ cái trong chuỗi cờ không đáng kể

Đây là danh sách đầy đủ các chữ cái (cờ)

  •   Green Mouse
    Green Mouse
    81. Trường hợp không nhạy cảm. không phân biệt biến thể chữ thường và chữ hoa của cùng một chữ cái

  • ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    43. đầu tiên chỉ. Đó là, thay thế/tìm/v.v. chỉ sự xuất hiện đầu tiên của một cái gì đó

  • ${"  green  mouse"?capitalize}
    ${"GreEN mouse"?capitalize}
    44. Xâu con cần tìm là a. FreeMarker sử dụng biến thể của các biểu thức chính quy được mô tả tại http. // tài liệu. tiên tri. com/javase/7/docs/api/java/util/regex/Pattern. html (lưu ý rằng sự hiện diện của một số tính năng mẫu phụ thuộc vào phiên bản Java được sử dụng)

  •   Green Mouse
    Green Mouse
    85. Chế độ nhiều dòng cho biểu thức chính quy. Ở chế độ nhiều dòng, các biểu thức
      Green mouse
    GreEN mouse
    - green mouse
    49 và
      Green Mouse
    Green Mouse
    87 tương ứng ngay sau hoặc ngay trước dấu kết thúc dòng hoặc kết thúc chuỗi. Theo mặc định, các biểu thức này chỉ khớp ở đầu và cuối của toàn bộ chuỗi. Lưu ý rằng
      Green mouse
    GreEN mouse
    - green mouse
    49 và
      Green Mouse
    Green Mouse
    87 không khớp với chính ký tự ngắt dòng

  •   Green Mouse
    Green Mouse
    90. Bật chế độ chấm tất cả cho các biểu thức chính quy (giống như chế độ một dòng Perl). Ở chế độ chấm tất cả, biểu thức
      Green Mouse
    Green Mouse
    08 khớp với bất kỳ ký tự nào, kể cả dấu kết thúc dòng. Theo mặc định, biểu thức này không khớp với các đầu cuối dòng

  • <#ftl output_format="HTML" auto_esc=false>
    <#assign s = "R&D">
    ${s}
    ${s?esc}
    5. Cho phép khoảng trắng và nhận xét trong biểu thức chính quy

Thí dụ

Mẫu

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
6

cái này xuất cái này

đầu ra

<#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
<#assign someDate = "1995-10-25"?date.xs>
<#assign someTime = "15:05:30"?time.xs>
<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>

<#-- Parsing ISO 8601 (both extended and basic formats): -->
<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
<#assign someDatetime = "19951025T1505"?datetime.iso>

<#-- Parsing with SimpleDateFormat patterns: -->
<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
<#assign someTime = "15:05:30"?time("HH:mm:ss")>
<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>

<#-- Parsing with custom date formats: -->
<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog>
7

Đây là bảng tích hợp sẵn sử dụng các cờ phổ biến này và hỗ trợ các cờ nào

Tích hợp_______32_______81 (bỏ qua trường hợp)

${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
44 (reg. kinh nghiệm. )
  Green Mouse
Green Mouse
85 (chế độ nhiều dòng)
  Green Mouse
Green Mouse
90 (chế độ chấm tất cả)
<#ftl output_format="HTML" auto_esc=false>
<#assign s = "R&D">
${s}
${s?esc}
5 (khoảng trắng. and comments)
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
43 (first only)
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
59YesYesOnly with
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
44Only with
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
44Only with
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
44Yes
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
68YesYesOnly with
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
44Only with
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
44Only with
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
44No
  Green mouse
GreEN mouse
- green mouse
56YesIgnoredYesYesYesNo
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
15YesYesYesYesYesIgnored
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
90YesYesYesYesYesIgnored
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
18YesYesYesYesYesIgnored
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
89YesYesYesYesYesIgnored
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}
78YesIgnoredYesYesYesIgnored

Làm cách nào để tách một chuỗi trong Java?

Phương thức chuỗi Split() trong Java với các ví dụ . Sau khi phân tách theo biểu thức chính quy đã cho, phương thức này trả về một mảng chuỗi. The string split() method breaks a given string around matches of the given regular expression. After splitting against the given regular expression, this method returns a string array.

Làm cách nào tôi có thể chia một chuỗi thành các đoạn có N ký tự trong Java?

Sử dụng Phương thức String#split . <=\\G. {” + n + “}) trong đó n là số ký tự .

split() có phải là phương thức chuỗi không?

Split được sử dụng để ngắt một chuỗi được phân tách thành các chuỗi con . Bạn có thể sử dụng mảng ký tự hoặc mảng chuỗi để chỉ định không hoặc nhiều ký tự hoặc chuỗi phân tách. Nếu không có ký tự phân cách nào được chỉ định, chuỗi sẽ được phân tách tại các ký tự khoảng trắng.

Chúng ta có thể tách một chuỗi theo ký tự trong Java không?

Phương thức tách của StringUtils có thể tách chuỗi dựa trên ký tự hoặc chuỗi bạn muốn tách . chữ ký phương thức. chuỗi tĩnh công khai [] tách (Chuỗi str, char táchChar); .