Tôi có các chuỗi có thêm khoảng trắng, mỗi lần có nhiều hơn một khoảng trắng tôi muốn nó chỉ là một.
Bất kỳ ai? Tôi đã thử tìm kiếm google, nhưng không có gì làm việc cho tôi.
Cảm ơn
Tôi có các chuỗi có thêm khoảng trắng, mỗi lần có nhiều hơn một khoảng trắng tôi muốn nó chỉ là một.
Bất kỳ ai? Tôi đã thử tìm kiếm google, nhưng không có gì làm việc cho tôi.
Cảm ơn
Câu trả lời:
Một cái gì đó như thế này:
var s = " a b c ";
console.log(
s.replace(/\s+/g, ' ')
)
Bạn có thể gia tăng Chuỗi để thực hiện các hành vi này dưới dạng phương thức, như trong:
String.prototype.killWhiteSpace = function() {
return this.replace(/\s/g, '');
};
String.prototype.reduceWhiteSpace = function() {
return this.replace(/\s+/g, ' ');
};
Điều này bây giờ cho phép bạn sử dụng các hình thức thanh lịch sau đây để tạo ra chuỗi bạn muốn:
"Get rid of my whitespaces.".killWhiteSpace();
"Get rid of my extra whitespaces".reduceWhiteSpace();
sử dụng biểu thức chính quy với hàm thay thế sẽ thực hiện thủ thuật:
string.replace(/\s/g, "")
var s = ' a b word word. word, wordword word ';
// with ES5:
s = s.split(' ').filter(function(n){ return n != '' }).join(' ');
console.log(s); // "a b word word. word, wordword word"
// or ES6:
s = s.split(' ').filter(n => n).join(' ');
console.log(s); // "a b word word. word, wordword word"
Nó phân tách chuỗi bằng khoảng trắng , loại bỏ tất cả các mục mảng trống khỏi mảng (các mục không chỉ là một khoảng trắng) và nối tất cả các từ lại thành một chuỗi, với một khoảng trắng ở giữa chúng.
Tôi đoán bạn đang tìm cách tước khoảng trắng từ đầu và / hoặc cuối chuỗi (thay vì xóa tất cả khoảng trắng?
Nếu đó là trường hợp, bạn sẽ cần một regex như thế này:
mystring = mystring.replace(/(^\s+|\s+$)/g,' ');
Điều này sẽ loại bỏ tất cả các khoảng trắng từ đầu hoặc cuối chuỗi. Nếu bạn chỉ muốn cắt khoảng trắng từ cuối, thì regex sẽ trông như thế này:
mystring = mystring.replace(/\s+$/g,' ');
Mong rằng sẽ giúp.
''
thay thế ' '
.
jQuery.trim () hoạt động tốt.
Tôi biết tôi không nên quan tâm đến một chủ đề, nhưng được cung cấp các chi tiết của câu hỏi, tôi thường mở rộng nó thành:
Đối với điều này, tôi sử dụng mã như thế này (dấu ngoặc đơn trên regrec đầu tiên chỉ có để làm cho mã dễ đọc hơn một chút ... regexps có thể là một nỗi đau trừ khi bạn quen thuộc với chúng):
s = s.replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ' ');
Lý do điều này hoạt động là các phương thức trên đối tượng Chuỗi trả về một đối tượng chuỗi mà bạn có thể gọi một phương thức khác (giống như jQuery và một số thư viện khác). Cách mã hóa nhỏ gọn hơn nhiều nếu bạn muốn thực thi nhiều phương thức trên một đối tượng liên tiếp.
var x = "Kiểm tra thử nghiệm kiểm tra" .split ("") .join (""); cảnh báo (x);
Thử cái này.
var string = " string 1";
string = string.trim().replace(/\s+/g, ' ');
kết quả sẽ là
string 1
Điều đã xảy ra ở đây là nó sẽ cắt các không gian bên ngoài trước bằng cách sử dụng trim()
sau đó cắt các không gian bên trong bằng cách sử dụng .replace(/\s+/g, ' ')
.
Nếu bạn muốn hạn chế người dùng cung cấp khoảng trắng trong tên, chỉ cần tạo một câu lệnh if và đưa ra điều kiện. như tôi đã làm:
$j('#fragment_key').bind({
keypress: function(e){
var key = e.keyCode;
var character = String.fromCharCode(key);
if(character.match( /[' ']/)) {
alert("Blank space is not allowed in the Name");
return false;
}
}
});
Cái này thì sao?
"my test string \t\t with crazy stuff is cool ".replace(/\s{2,9999}|\t/g, ' ')
đầu ra "my test string with crazy stuff is cool "
Điều này cũng được loại bỏ bất kỳ tab nào
\s
. Regex phức tạp không cần thiết, cũng có thể chỉ cần viết /\s+/g
.