2010-02-09 22 views
18

Tôi đang sử dụng javascript trong trang web của mình. Tôi đang cố gắng tìm kiếm toàn bộ một từ thông qua hộp văn bản. Nói rằng tôi tìm kiếm: 'tôi', tôi nên tìm tất cả 'tôi' trong văn bản, nhưng không tìm thấy 'memmm' mỗi lần nói.toàn bộ từ khớp trong javascript

Tôi đang sử dụng tìm kiếm của javascript ('biểu thức regex của tôi') để thực hiện tìm kiếm hiện tại (không thành công).

Cảm ơn bạn!

Edit: Sau khi một số đề xuất để sử dụng thiết bị chuyển mạch \ b [mà dường như không làm việc] Tôi đăng một lời giải thích sửa đổi vấn đề của tôi:

AMM, từ một số lý do này không seemt làm các thủ thuật. Giả sử văn bản tìm kiếm javascript sau:

<script type='text/javascript'> 
var lookup = '\n\n\n\n\n\n2 PC Games  \n\n\n\n'; 
lookup = lookup.trim() ; 
alert(lookup); 
       var tttt = 'tttt'; 
       alert((/\b(lookup)\b/g).test(2)); 

</script> 

Moving dòng là điều cần thiết

+0

mã của bạn đang tìm kiếm "tra cứu" trong chuỗi "2". – Kobi

Trả lời

28

Để sử dụng một biểu thức chính quy động xem mã cập nhật của tôi:

new RegExp("\\b" + lookup + "\\b").test(textbox.value) 

Ví dụ cụ thể của bạn là ngược:

alert((/\b(2)\b/g).test(lookup)); 

Regexpal

Regex Object

17

Sử dụng ranh giới khẳng định từ \b:

/\bme\b/ 
2
<script type='text/javascript'> 
var lookup = '\n\n\n\n\n\n2 PC Games  \n\n\n\n'; 
lookup = lookup.trim() ; 
alert(lookup); 
       var tttt = 'tttt'; 
       alert((/\b(lookup)\b/g).test(2)); 

</script> 

Đó là một chút khó có thể nói những gì bạn đang cố gắng làm ở đây. Biến số tttt phải làm gì?

Bạn đang tìm kiếm chuỗi nào? Bạn đang tìm kiếm 2 trong chuỗi lookup? Sau đó, bạn sẽ muốn:

/\b2\b/.test(lookup) 

Sau đây, từ biểu hiện thường xuyên của bạn, xây dựng một biểu thức chính quy bao gồm một ranh giới từ, tiếp theo là chuỗi "lookup" (không phải là giá trị chứa trong biến lookup), tiếp theo là một Ranh giới từ. Sau đó nó sẽ cố gắng để phù hợp với biểu thức chính quy này so với chuỗi "2", thu được bằng cách chuyển đổi số 2 thành một chuỗi:

(/\b(lookup)\b/g).test(2) 

Ví dụ, lợi nhuận sau true:

(/\b(lookup)\b/g).test("something to lookup somewhere") 
4

Bạn có thể sử dụng sau đây mã:

var stringTosearch ="test ,string, test"; //true 
var stringTosearch ="test string test"; //true 
var stringTosearch ="test stringtest"; //false 
var stringTosearch ="teststring test"; //false 

if (new RegExp("\\b"+"string"+"\\b").test(stringTosearch)) { 
    console.log('string found'); 
    return true; 
} else { 
    return false; 
} 
Các vấn đề liên quan