2013-11-18 3 views
2

Я хочу удалить пробел перед каждой пунктуацией в Javascript/jquery. НапримерУдалить место перед пунктуацией javascript/jquery

Input string = " This 's a test string ." 

Output = "This's a test string." 
+2

Я хочу котенка. У вас возникли вопросы? Вы что-то пробовали? Это сработало? –

+0

http://stackoverflow.com/questions/4328500/how-can-i-strip-all-punctuation-from-a-string-in-javascript-using-regex –

+0

что означают знаки пунктуации? В вашем примере показано «Удалить пробелы с начала и конца строки». Используйте функцию .trim() для этого – Nandakumar

ответ

4
"This string has some -- perhaps too much -- punctuation that 's not properly " 
+ "spaced ; what can I do to remove the excess spaces before it ?" 
.replace(/\s+(\W)/g, "$1"); 

//=> "This string has some-- perhaps too much-- punctuation that's not properly " 
// + "spaced; what can I do to remove the excess spaces before it?" 
+0

'\ s + (\ W)' также удаляет фиды строк. Используйте '/ + (\ W)/g' для удаления только пробелов. –

0

Попробуйте разделить как

var my_arr = []; 
my_arr = my_str.split("'"); 
var output = $.trim(my_arr[0]) + "'" + $.trim(my_arr[1]); 
alert(output); 

Смотреть это FIDDLE Но прежде всего, попробовать что-то.

0

Если вы хотите использовать регулярные выражения, то совпадают на

/\s\./ 

и заменить его только с точки.

0

попробуйте замену.

var test = "This's a test string"; 
test = test.replace(" 's", "'s"); 
OutPut = test; 
+0

Но @suchithra он попросил удалить пространство между ними. Не совсем удалить '' s' – Gautam3164

2

Используйте функцию String.replace с регулярным выражением, которое будет соответствовать любому количеству пробелов, прежде чем все символы пунктуации вы хотите, чтобы соответствовать:

var regex = /\s+([.,!":])/g; 

var output = "This 's a test string .".replace(regex, '$1'); 
+0

Наверное, проще было бы 'str.replace (/ \ s + (\ W)/g," $ 1 ");'. Не пытайтесь белым списком символов, на которые вы хотите настроить таргетинг, просто используйте что-либо, кроме символов слова. –

+0

@ScottSauyet Легче, но, возможно, не совсем то, что они хотят. Например, я не вижу причин для удаления пространства перед открывающей скобкой. –

+0

Ну, в вашем списке отсутствуют дефисы, круглые скобки, вопросительные знаки, точки с запятой и другие знаки пунктуации. Для меня довольно просто, что пунктуация - это все символы без пробелов, а не слова. Но OP, похоже, не очень интересуется ... –

0
var str= "This 's a test string ." 

var regex = /\s\'/i; 

var output =str.replace(regex, "'"); 
0

Если вы хотите удалите определенную пунктуацию из строки, вероятно, лучше всего точно удалить именно то, что вы хотите, как

replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()]/g,"") 

Выполнение вышеуказанного файла не возвращает строку, как вы ее указали. Если вы хотите, чтобы удалить лишние пробелы, которые были оставшиеся от удаления с ума знаков препинания, то вы будете хотеть сделать что-то вроде

replace(/\s{2,}/g," "); 

Мой полный пример:

var s = "This., -/ is #! an $ %^& * example ;: {} of a = -_ string with `~)() punctuation"; 
    var punctuationless = s.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()]/g,""); 
var finalString = punctuationless.replace(/\s{2,}/g," "); 
Смежные вопросы