Удалите пробелы внутри одинарных кавычек до и после текста внутри кавычек

#javascript #jquery #regex

#javascript #jquery #регулярное выражение

Вопрос:

Я использую сторонний плагин для javascript под названием QueryBuilder.

Проблема в том, что нет способа обрезать входные данные после сохранения, поэтому данные сохраняются следующим образом

 testName='   test   '
 

это мой код javascript, который удаляет все пробелы, что не то, что я хочу, я пытаюсь удалить только пробелы в одинарных кавычках до и после всего текста. Очень похоже на обрезку, но обрезка не работает, поэтому мне нужно регулярное выражение для замены метода

 get_condition_sql__str = $.trim(get_condition_sql.sql);
                get_condition_sql__clean = get_condition_sql__str.replace(/s/g, '')
                console.log(get_condition_sql__clean);
                jQuery('.exception_conditions__sql').val(get_condition_sql__clean);
 

Ответ №1:

Посмотрите вперед ровно на единицу ' до конца строки:

 const input = `testName='   test   '`;
const cleaned = input.replace(/  (?=[^']*'$)/g, '');
console.log(cleaned); 

Во входных данных есть только одно слово, но если вам нужно сохранить пробелы между словами внутри кавычек, поочередно сопоставляйте буквы a ' по обе стороны от пробелов:

 const input = `testName='   test test2   '`;
const cleaned = input.replace(/'  |  '/g, "'");
console.log(cleaned); 

Комментарии:

1. Второй работает хорошо, сохраняет пространство в середине, как мне это нужно, и удаляет с конца, но небольшая проблема заключается в том, что он оставляет пространство спереди. Тем не менее, все еще лучше, хотя больше всего жаловались на пробел в конце, так что большое спасибо!

2. Запустите фрагмент кода — он выглядит так, чтобы удалить пробел впереди по желанию.

Ответ №2:

Пожалуйста, используйте это для удаления левого пробела:

 <script type="text/javascript">
 
var original_str3 = "   This is a string"
 
//Strips all space to the left of the string
alert( original_str3.trimLeft()   ' <--- Without any spaces on the left' );
 
</script>
 

Или используйте это для удаления правильного пробела:

 <script type="text/javascript">
 
var original_str4 = "This is a string   "
 
//Strips all space to the right of the string
alert( original_str4.trimRight()   ' <--- Without any spaces on the right' );
 

Для удаления пробела с обеих сторон символа или строки:

 <script type="text/javascript">
 
var original_str2 = "S    t    r  in  g"
//Strips excessive white spaces i.e. retains only one space between each letter
var white_space_stripped_str = original_str2.replace(/s /g, ' ');
 
alert(white_space_stripped_str   ' <---- With exactly one space between each letter in case each letter has multiple spaces');
 
</script>
 

Если требуются какие-либо другие, пожалуйста, дайте мне знать.

Пример:

 <!DOCTYPE html>
<html>
<body>

<p>Click the button to replace "blue" with "red" in the paragraph below:</p>

<p id="demo">"vSourceCountry = 'TEST'"</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction() {
  var str = `testName='   test test2   '`; 
  var res = str .replace(/'  |  '/g, "'");
  document.getElementById("demo").innerHTML = res;
}
</script>

</body>
</html>
 

Результат:

 Click the button to replace "Microsoft" with "W3Schools" in the paragraph  below:

    testName='test test2'
 

Или вы можете использовать etc в соответствии с требованиями:

 https://www.w3schools.com/jsref/jsref_replace.asp
 

Комментарии:

1. единственная проблема в том, что строка фактически хранится как example = «vSourceCountry = ‘TEST'», поэтому trim не обрезает внутри одинарных кавычек только двойные

2. @MichaelDaSilva спасибо, пожалуйста, используйте это : !DOCTYPE html> <html> <body> <p> Нажмите кнопку, чтобы заменить «синий» на «красный» в абзаце ниже:</p> <p id=»demo»>»vSourceCountry = ‘TEST'»</p> <кнопка onclick=»myFunction()»>Попробуйте</button> <script> функция myFunction() { var str = document.getElementById(«demo»).innerHTML; var res = str.replace(/’/g, «»); document.getElementById(«demo»).innerHTML = res; } </script> </body> </html>

3. @MichaelDaSilva спасибо, если это полезно для нас, пожалуйста, дайте мне знать, если требуются другие изменения forums.asp.net/t /…