Tạo số ngẫu nhiên trong JavaScript

Một phần của tài liệu JS Objects (Trang 33 - 38)

Việc tạo ra các giá trị ngẫu nhiên là hết sức quan trọng,đó là lí do tại sao trong tất cả các ngôn ngữ lập trình luôn luôn hộ trợ chức năng này.JavaScript cũng vậy,nó cung cấp cho chúng ta chức năng tạo giá trị ngẫu nhiên bằng cách sử dụng hàm math.random() ,thế nhưng chỉ có điều là chỉ duy nhất hàm này trong JavaScript là thực hiện điều này thôi,và nó chỉ tạo ra giá trị ngẫu nhiên trong khoảng từ 0 đến 1.

Ví dụ :

X= math.random( );

Thì x sẽ nhận một giá trị nào đó trong khoảng từ 0 đến 1, ví dụ x= 0,2645.

Đến đây chắc bạn sẽ có thắc mắc vậy muốn tạo số ngẫu nhiên trong phạm vi lớn hơn thì làm thế nào ?

Câu trả lời là : thực ra chỉ như vậy thôi các bạn cũng có thể tạo ra số ngẫu nhiên trong khoảng bất kì rồi,cách làm là nhân với một giá trị nào đó, ví dụ :

X= Math.random( ) * 100;

Như thế rõ ràng giá trị ngẫu nhiên của x sẽ đi từ 0 tới 100.

Nhưng có thể một số người lại muốn lấy giá trị ngẫu nhiên trong khoảng từ 0 đến 100 nhưng lại muốn lấy số nguyên thôi vậy thì ta làm như sau :

X=Math.floor(Math.random( ) *101);

Các bạn chú ý rằng Math.floor( ) là phương thức làm tròn xuống đến số nguyên gần nhất,đó là lý do tại sao chúng ta lại phải nhân với 101 ,chứ không phải là nhân với 100;

So mẫu (RegExp) trong JavaScript

Như thé nào là so mẫu (RegExp)?

Nó là một đối tượng mô tả mô hình của kí tự.

Khi bạn tìm kiếm trong văn bản,bạn có thể sử dụng một mô hình để mô tả những gì bạn đang tìm kiếm.

Một mô hình đơn giản có thể là một kí tự duy nhất.

Một mô hình phức tạp hơn có thể có nhiều kí tự hơn,và có thể được dùng để phân tích,định dạng kiểm tra,thay thế hoặc nhiều việc khác nữa.

Regexp thường được sử dụng để thực hiện chức năng tìm kiếm và thay thế trên văn bản. Cú pháp:

var txt=new RegExp(pattern,modifiers); hoặc đơn giản hơn

var txt=/pattern/modifiers;

như chúng ta đã thấy trong cú pháp trên có hai trường là pattern và modifiers,chúng ta sẽ lần lượt tìm hiểu chúng.

RegExp modifiers ?

Cờ modifiers được sử dụng để báo cho trình duyệt biết rằng là tìm kiếm không phân biệt chữ hoa hay chữ thường ? hay tìm kiếm trên toàn bộ văn bản? hay tìm kiếm trên toàn bộ văn bản và không phân biệt chữ hoa hay thường ?

Modifiers i được sử dụng để : tìm kiếm không phân biệt chữ hoa hay chữ thường. Modifiers g được sử dụng để : tìm kiếm trên toàn bộ văn bản.

Modifiers ig được sử dụng để : tìm kiếm trên toàn bộ văn bản và không phân biệt chữ hoa và chữ thường.

Ví dụ sau sẽ thực hiện việc tìm kiếm từ “w3schools” trong một chuỗi : <html>

<body>

<script type="text/javascript">

var str = "Visit W3Schools";

var patt1 = /w3schools/i;

document.write(str.match(patt1)); </script> </body> </html> Kết quả : W3Schools

Ví dụ sau sẽ thực hiện việc tìm kiếm từ “is” trên toàn bộ văn bản (theo mặc định thì trình duyệt sẽ tìm thấy từ đầu tiên trong văn bản sẽ dừng lại ):

<html> <body>

<script type="text/javascript">

var patt1=/is/g; document.write(str.match(patt1)); </script> </body> </html> Kết quả hiện thị là : is,is

ví dụ dưới đây sẽ thực hiện việc tìm kiếm trên toàn bộ văn bản và không phân biệt chữ hoa chữ thường:

<html> <body>

<script type="text/javascript">

var str="Is this all there is?";

var patt1=/is/gi; document.write(str.match(patt1)); </script> </body> </html> Kết quả hiện thị là : Is,is,is

Hai phương thức (method) quan trọng của đối tượng RegExp Test() ?

Phương thức này sẽ cho biết xem một chuỗi có nằm trong một chuỗi khác hay không ? Nếu có thì trả về true.

Nếu sai thì trả về false.

Ví dụ dưới đây kiểm tra xem kí tự e có nằm trong chuỗi hay không ? <html>

<body>

<script type="text/javascript">

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free"));

</script> </body> </html> Kết quả hiện thị : True Exec() ?

Phương thức này cũng giống phương thức trên chỉ có điều nó sẽ trả về giá trị nội dung được tìm thấy.

Ví dụ sau tìm kiếm chuỗi kí tự “e” <html>

<body>

<script type="text/javascript">

var patt1=new RegExp("e");

document.write(patt1.exec("The best things in life are free"));

</script> </body> </html>

Kết quả hiện thị sẽ là : e

chúng ta có thể tham khảo bảng sau ( đầy đủ hết,tuy nhiên một số cái ít khi dùng lắm) Modifiers

Modifiers are used to perform case-insensitive and global searches:

Modifier Description

i Perform case-insensitive matching

g Perform a global match (find all matches rather than stopping after

the first match)

m Perform multiline matching

Brackets

Brackets are used to find a range of characters:

Expression Description

[abc] Find any character between the brackets

[^abc] Find any character not between the brackets

[0-9] Find any digit from 0 to 9

[A-Z] Find any character from uppercase A to uppercase Z

[a-z] Find any character from lowercase a to lowercase z

[adgk] Find any character in the given set

[^adgk] Find any character outside the given set

(red|blue|green) Find any of the alternatives specified

Metacharacters

Metacharacters are characters with a special meaning:

Metacharacter Description

. Find a single character, except newline or line terminator

\w Find a word character

\W Find a non-word character

\d Find a digit

\D Find a non-digit character

\s Find a whitespace character

\S Find a non-whitespace character

\b Find a match at the beginning/end of a word

\B Find a match not at the beginning/end of a word

\0 Find a NUL character

\n Find a new line character

\f Find a form feed character

\r Find a carriage return character

\t Find a tab character

\v Find a vertical tab character

\xxx Find the character specified by an octal number xxx

\xdd Find the character specified by a hexadecimal number dd

\uxxxx Find the Unicode character specified by a hexadecimal number xxxx

Quantifiers

n+ Matches any string that contains at least one n

n* Matches any string that contains zero or more occurrences of n

n? Matches any string that contains zero or one occurrences of n

n{X} Matches any string that contains a sequence of X n's

n{X,Y} Matches any string that contains a sequence of X or Y n's

n{X,} Matches any string that contains a sequence of at least X n's

n$ Matches any string with n at the end of it

^n Matches any string with n at the beginning of it

?=n Matches any string that is followed by a specific string n

?!n Matches any string that is not followed by a specific string n

RegExp Object Properties

Property Description

global Specifies if the "g" modifier is set ignoreCase Specifies if the "i" modifier is set

lastIndex The index at which to start the next match

multiline Specifies if the "m" modifier is set

source The text of the RegExp pattern

RegExp Object Methods

Method Description

compile() Compiles a regular expression

exec() Tests for a match in a string. Returns the first match

test() Tests for a match in a string. Returns true or false

Một phần của tài liệu JS Objects (Trang 33 - 38)

Tải bản đầy đủ (PDF)

(47 trang)