Як підрядок у jquery


115

Як я можу використовувати jquery на стороні клієнта для підрядки "nameGorge" та видалити "name", щоб він виводив просто "Gorge"?

var name = "nameGorge"; //output Gorge

15
jQuery - це бібліотека, написана на JavaScript. Він використовується поверх JavaScript. Те, що ви запитуєте, можна зробити в JavaScript без необхідності взагалі використовувати бібліотеку jQuery.
Джефф

1
jQuery IS JavaScript (точна бібліотека JavaScript, але все-таки JavaScript). Зважаючи на це, я не думаю, що використання jQuery для отримання підрядки ніколи не може бути написано простіше, ніж це вже в прямому JavaScript.
VoidKing

Відповіді:


235

Не потрібно jQuery! Просто використовуйте метод підрядки:

var gorge = name.substring(4);

Або якщо текст, який потрібно видалити, не є статичним:

var name = 'nameGorge';
var toRemove = 'name';
var gorge = name.replace(toRemove,'');

5
Вибачте, не очікував, що це так вибухне після того, як я пішов спати. Тут я трохи прибрав речі. У той же час, хто - то повинен читати це
BoltClock

Гей BoltClock: Як справи? Я намагався довести свою думку тут, дуже дякую .. так що це означає, що якщо я намагаюсь переробити код для клієнта, і я приходжу сюди шукати відповідь, і помічена відповідь ОП для нього задовільна. Тоді я не можу просто поставити те саме запитання, ні навести приклад своєї проблеми .. дуже цікаво .. тому моє запитання було так, як ці хлопці настільки впевнені, що якщо я виконую функцію jQuery, а всередині я використовую .split я посилання на рідний JS-шлях або якесь тунелювання чи проксі-сервер, щоб викликати це через jQuery. Також якщо ви читаєте питання.
Жан Пол АКА el_vete

Моя думка полягає в тому, що для мене працює в просторі імен jQuery, я дійсно мало хвилююся, якщо випадок викликає безпосередньо string.split від JS, але натомість з боку спільноти я зрозумів, що якщо я опублікую саме це запитання, вона буде позначена звуженою, оскільки ця відповідь сприймається більше, ніж той факт, що десь для мене є посилання на документацію jQuery.split, принаймні, говорить мені, що так має бути, тому що вона існує, не даючи конфлікту моєму коду та всім jQuery плагіни, які на видалених фотографіях ви змогли побачити ... тож ще раз дякую
Jean Paul AKA el_vete

5
@JeanPaul - jQuery не має розколу (). Ми вже закінчилися цим. Обидві статті, які ви пов’язали з текстом, що раніше використовувався (), щоб отримати ванільний рядок JavaScript, а потім назвали string.split (). Ви просто помиляєтеся в цьому випадку. Залиште.
Джастін Нісснер

52

Використання .split(). (Друга версія використовує .slice()і .join()в масиві.)

var result = name.split('name')[1];
var result = name.split('name').slice( 1 ).join(''); // May be a little safer

Використання .replace().

var result = name.replace('name','');

Використання .slice()на рядку.

var result = name.slice( 4 );

jquery не підтримує заміну. Це Vanilla js
Jude


9

Це просто звичайний JavaScript: дивіться substringі substr.


1
Або справді slice(). Дивний JS повинен мати стільки способів сказати одне і те ж, всі тонко різні. slice()є моїм кращим методом, оскільки він поводиться послідовно з slice()масивами, і дозволяє негативні початкові та кінцеві індекси для індексу від кінця.
bobince

@bobince: Правда, і я не пам'ятаю , який з substringі substrприймає параметр довжини і який має кінцевий індекс - Я завжди потрібно шукати документацію , щоб дізнатися.
casablanca

4

Для цього вам не потрібен jquery.

var placeHolder="name";
var res=name.substr(name.indexOf(placeHolder) + placeHolder.length);

Мені потрібно це зробити на стороні клієнта, і у мене вже є jquery. Що ви тоді пропонуєте? Вибачте за просте запитання, але я досить новачок з js та jquery.
Ущелина

Це твердження поверне "nameGorge", тому що indexOf ("ім'я") поверне 0.
Джастін Нісснер

2
var name = "nameGorge";
name.match(/[A-Z].*/)[0]

0

Так, ви можете, хоча він покладається на притаманну Javascript функціональність, а не бібліотеку jQuery.

http://www.w3schools.com/jsref/jsref_substr.aspsubstr функція дозволить отримати певні частини рядка.

Тепер, якщо ви шукаєте певний рядок або символ, який слід використовувати, щоб знайти частину рядка для вилучення, ви можете також скористатися функцією indexOf. http://www.w3schools.com/jsref/jsref_IndexOf.asp

Питання дещо розпливчасте; навіть просто посилання тексту на ім'я дозволить досягти бажаного результату. Які критерії отримання вашої підрядки?


1
Чому ви пов’язали strposфункцію PHP у запитанні на JavaScript?
casablanca

Ви маєте рацію, занадто багато PHP для мене сьогодні. Я відредагував відповідний JS-еквівалент. Дякуємо за те, що ви його спіймали.
aaronofleonard

-1

Як щодо наступного?

<script charset='utf-8' type='text/javascript'>
  jQuery(function($) { var a=$; a.noConflict();
    //assumming that you are using an input text 
    //  element with the text "nameGorge"
    var itext_target = a("input[type='text']:contains('nameGorge')");
    //gives the second part of the split which is 'Gorge'
    itext_target.html().split("nameGorge")[1];
    ...
  });
</script>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.