#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 /…