JavaScript replace () метод: удалить пустое пространство только в конце и в начале строки [дубликат]
Возможные Дубликаты:
Как обрезать строку в javascript?
используя метод replace в javascript, я пытаюсь удалить пустое пространство между началом и концом строки:
вот мой код:
любая идея, как я должен достичь в результате?
input -> " first second ".replace(/[^s|s$]/g, ''); // " "
output -> "first second"
6 ответов
Это называется тримминг.
вам нужны круглые скобки вместо скобок в регулярном выражении, а также множитель на спецификаторе пробела, чтобы соответствовать нескольким пробелам:
var s = " first second ".replace(/(^\s+|\s+$)/g, '');
добавить это в начале вашего скрипта:
// Add ECMA262-5 string trim if not supported natively
//
if (!('trim' in String.prototype)) {
String.prototype.trim= function() {
return this.replace(/^\s+/, '').replace(/\s+$/, '');
};
}
затем использовать yourString.trim()
удалить пробелы в начале и в конце строки.
вы должны использовать круглые скобки (), чтобы указать, что вы хотите соответствовать левой или правой стороне символа трубы"|", а не квадратные скобки. Квадратные скобки фактически соответствуют наборам символов (т. е. [виноград] будет соответствовать одному экземпляру "g", "r", "a", "p", "e" или "s", в то время как (виноград|яблоки) будет соответствовать "винограду" или "яблокам").
кроме того, еще одна вещь, которую вам не хватает, - это указание на "количество". Другими словами, как только вы сопоставите пробел (\s), сколько пространства следует искать? В вашем примере он соответствует только одному символу пробела. Вероятно, вы хотите сопоставить столько последовательных пробелов, сколько существует слева и справа от строки. Для этого вам нужно добавить * (соответствует нулю или более) или + (соответствует одному или более) сразу после символа \з.
Итак, чтобы переписать регулярное выражение:
var input = " first second ";
var trimmed = input.replace(/(^\s+|\s+$)/g, '');
console.log(trimmed);
вы можете скопировать и вставить эти строки в консоль JavaScript, чтобы увидеть, что вы получите желаемый результат. Регулярное выражение здесь буквально говорит: "сопоставьте один или несколько пробелов с начала строки или один или несколько пробелов сразу после окончания строки."Затем функция replace принимает это совпадение и заменяет его на ".
Вы можете использовать jQuery trim.
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<pre id="original"></pre>
<pre id="trimmed"></pre>
<script>
var str = " first second ";
$("#original").html("Original String: '" + str + "'");
$("#trimmed").html("After trimed: '" + $.trim(str) + "'");
</script>
</body>
</html>
небольшая модификация для вашего шаблона:
(^\s+|\s+$)
а то
var string = " test ";
string.replace(/(^\s+|\s+$)/gm, '');
должно работать ;-)