Hướng dẫn replace eval function javascript - thay thế hàm eval bằng javascript

Tôi có một số mã hiện có trông như thế này.

i = new Function("obj", "_", s);

Tham số S chứa mã JavaScript có thể thực thi, dưới dạng chuỗi. Vào thời điểm sau trong phương pháp, nó được gọi là giống như

i.call(this, e, v)

Tôi nhận được một lỗi CSP cho unsafeeval cho dòng chức năng mới. Làm thế nào để tôi giải quyết điều này sao cho việc Eval không an toàn không xuất hiện trở lại? Xin vui lòng giúp đỡ.

Về cơ bản những gì tôi đang cố gắng làm là, tôi có một ứng dụng của bên thứ ba mà tôi đã định vị để sửa lỗi đánh giá cho CSP.

Tại sao chức năng mới gây ra lỗi Eval không an toàn?

hỏi ngày 27 tháng 4 lúc 17:21Apr 27 at 17:21

Hướng dẫn replace eval function javascript - thay thế hàm eval bằng javascript

6

Như @james đã đề cập, new Function("obj", "_", s) đánh giá phần s và tạo chức năng dựa trên chuỗi.

Nó thực sự phụ thuộc vào những gì s ở đây. Nó có được tính toán động?

  • Nếu không, thì bạn chỉ có thể sao chép s dưới dạng mã thực:
const i = function(obj, _) {
  // paste s here
}
  • Nếu có, bạn sẽ phải liệt kê rõ ràng tất cả các triển khai có thể. Ví dụ:
const i = function(obj, _) {
  if (xxx) {
    // implementation 1
  } else if (xxx) {
    // implementation 2
  }
}

Đã trả lời ngày 30 tháng 4 lúc 0:34Apr 30 at 0:34

Zzzzzzzzz

8958 Huy hiệu bạc12 Huy hiệu đồng8 silver badges12 bronze badges

Phương thức & nbsp; ________ 11 bạn chức năng tính toán biểu thức toán học

Hướng dẫn replace eval function javascript - thay thế hàm eval bằng javascript

BÀi VIếT NÀY ĐượC ĐÓfreetuts.net, không được copy dưới mọi hình thức.

Nếu Tham Số Truyền Vào là một Biểu thức Toán Học, phương thức Sẽ Tính Toàn Và tr

Nếu Tham số truyền vào

Cú phápp

Cú Phá: & nbsp; ________ 12

i.call(this, e, v)
2

BÀi VIếT NÀY ĐượC ĐÓ

In which::

  • Chuỗi đó là thể Là 1 có thể là 1 biểu thức toán học hoặc là các câu lệnh javascript.

Cách sử dụng

Tham Số Truyền Vào là một Biểu thức Toán Học.



    
        
    
    
        

Học lập trình miễn phí tại freetuts.net

Kết quả

4 + 5 = 9
4 x 5 = 20
4 - 5 = -1
4 : 5 = 0.8

Tham số truyền vào



    
        
    
    
        

Học lập trình miễn phí tại freetuts.net

Kết quả:

Hướng dẫn replace eval function javascript - thay thế hàm eval bằng javascript

Các Đoạn MÃ JavaScript Sẽ ĐA

Tham khảo: w3schools.com

Phương thức replace() dùng để tìm kiếm và thay thế chuỗi, cụ thể là replace() có nhiệm vụ tìm xem trong chuỗi dữ liệu có chuỗi nào thỏa mãn chuỗi mẫu hoặc chuỗi muốn thay thế không, nếu có thì nó sẽ tiến hành thay phần chuỗi tìm thấy đó bằng chuỗi mới. Nếu dùng bổ từ i thì replace() chỉ tìm kiếm và thay thế xong rồi nó sẽ kết thúc, còn nếu dùng bổ từ g thì việc tìm kiếm và thay thế sẽ diễn ra trên toàn bộ chuỗi dữ liệu. replace() dùng để tìm kiếm và thay thế chuỗi, cụ thể là replace() có nhiệm vụ tìm xem trong chuỗi dữ liệu có chuỗi nào thỏa mãn chuỗi mẫu hoặc chuỗi muốn thay thế không, nếu có thì nó sẽ tiến hành thay phần chuỗi tìm thấy đó bằng chuỗi mới. Nếu dùng bổ từ i thì replace() chỉ tìm kiếm và thay thế xong rồi nó sẽ kết thúc, còn nếu dùng bổ từ g thì việc tìm kiếm và thay thế sẽ diễn ra trên toàn bộ chuỗi dữ liệu.

CÚ PHÁP

var string = oldstring.replace(chuỗi_mẫu hoặc chuỗi_muốn_thay, chuỗi_mới);

VÍ DỤ

var str1 = "I am feeling blue".replace(/blue/, "upbeat");   ( str1 is assigned: "I am feeling upbeat.")
   ( str1 is assigned: "I am feeling upbeat.")

Ví dụ thực hiện

            The replace() Method                    1       var myString="Tommy has a stomach ache."2       var regex = /tom/i;  //tìm kiếm một lần3       var newString=myString.replace(regex, "Mom");        document.write(newString +"");           
   
    The replace() Method
   
   
   
   
   
   
   

GIẢI THÍCH

  1. Tạo một biến có tên myString và được gán một chuỗi "Tommy has a stomach ache".

  2. Tạo một biến regex chứa chuỗi mẫu /tom/i. Bổ từ i chỉ cho phép tìm kiếm và thay thế một lần.

  3. Phương thức replace() sẽ tìm kiếm chuỗi mẫu regex trong chuỗi dữ liệu myString, nếu tìm thấy thì thay bằng chuỗi "Mom". Trong trường hợp này "Tom" và "tom" sẽ được thay bằng Mom, và kết quả là "Mommy has a sMomach ache."