2013-04-16 29 views
7

Có vẻ khá đơn giản, nhưng không thể tìm ra lý do tại sao mã javascript này không hoạt động trở lại sai, khi mong đợi đúng) - Tôi đoán nó đã có để làm điều gì đó với các ký tự thoát? Ai đó có thể vui lòng giúp tôi viết một khối JS sẽ trả về true nếu khoảng trắng hiện diện?Regex để kiểm tra xem khoảng trắng có hiện diện không?

var inValid = new RegExp("[\s]"); 
var value = "test space"; 
var k = inValid.test(value); 
alert(k); 

Trả lời

15

Bạn không cần khung, bạn sẽ cần phải thoát khỏi dấu gạch chéo ngược (nếu sử dụng dạng chuỗi) và cú pháp regex dựng sẵn dễ dàng hơn vì bạn không phải thoát khỏi các dấu gạch chéo ngược khi sử dụng cú pháp regex dựng sẵn.

var inValid = /\s/; 
var value = "test space"; 
var k = inValid.test(value); 
alert(k); 
3

Bạn cần phải thoát khỏi dấu chéo ngược nếu bạn đang tạo đối tượng RegExp của bạn từ một chuỗi chữ:

var inValid = new RegExp("[\\s]"); 

Hoặc bạn chỉ có thể sử dụng như sau:

var inValid = /\s/; 

này sử dụng một biểu thức chính quy theo nghĩa đen để thoát khỏi dấu gạch chéo ngược là không cần thiết và không cần lớp nhân vật ở đây vì vậy tôi cũng đã bỏ dấu ngoặc vuông.

3

Bạn cần một nhân vật thoát kép:

một cho "s" và một cho "\" bản thân:

var inValid = new RegExp("[\\s]"); 
3

Nếu bạn muốn kết hợp một cái gì đó ở đó, nhưng không có khoảng trắng:

alert(/^\S+$/.test(value)); 
Các vấn đề liên quan