我正在使用JavaScript,我試圖找出如何選擇一個單詞的所有字符,但沒有第一個字符。JavaScript的正則表達式幫助選擇一個單詞,但沒有第一個字符
爲此,我正在使用regExpr。所以下面expresion:
/\B[a-zA-Z'-]+/gi
應該選擇除了每個單詞的第一個所有字符,但它並不適用於文本工作: 「我是一個小茶壺」因爲 撇號。我已經嘗試了一切,但不知道還有什麼。 我會在這裏提供任何建議或支持。
預先感謝您!
我正在使用JavaScript,我試圖找出如何選擇一個單詞的所有字符,但沒有第一個字符。JavaScript的正則表達式幫助選擇一個單詞,但沒有第一個字符
爲此,我正在使用regExpr。所以下面expresion:
/\B[a-zA-Z'-]+/gi
應該選擇除了每個單詞的第一個所有字符,但它並不適用於文本工作: 「我是一個小茶壺」因爲 撇號。我已經嘗試了一切,但不知道還有什麼。 我會在這裏提供任何建議或支持。
預先感謝您!
對不起,但這並不奏效,實際上我認爲這是我寫的。我早些時候曾嘗試過這種表達方式,但並非成功。 – galeonweb
編輯,更新
您可以使用String.prototype.split()
與RegExp
/^.{1}|\s[a-z'-](?!=\s){1}|\s/
排除第一個字符字,匹配字的餘數; for
循環,String.prototype.replace()
替換.split()
返回的匹配詞,然後在匹配詞上調用.toLowerCase()
。
var str = "I'M a liTtLe tEa pOt";
console.log("original string:", str);
var res = str.split(/^.{1}|\s[a-z'-](?!\s)|\s/)
.filter(Boolean); // `["'m", "ittle", "ea", "ot"]`
for (var i = 0; i < res.length; i++) {
str = str.replace(res[i], res[i].toLowerCase())
};
console.log("res array:", res, "replaced string:", str);
可以使用String.prototype.slice()
與參數1
在str
console.log("I'm a little tea pot".slice(1))
或String.prototype.split()
和Array.prototype.slice()
返回陣列不包括第一個字符在str
console.log("I'm a little tea pot".split("").slice(1))
謝謝,但我需要一個regEx – galeonweb
@galeonweb預期的結果是每個字符數組中的第一個字符在字符串之後?或字符串中的第一個字符後面的整個字符_「但我需要一個regEx」_爲什麼需要'RegExp'? – guest271314
我需要一個regExp,因爲我不想要我的文章的解決方案,另一方面我卡在這裏。該練習涉及將每個單詞的首字母以外的每個單詞的字符串的所有字符小寫。例如:My Mum Loves Marhiuana;) – galeonweb
考慮使用String.split
和Array.slice
功能以下方法:
var str = "I'm a little tea pot", words = [];
str.split(" ").forEach((w) => w.length > 1 && words.push(w.slice(1)));
console.log(words); // ["'m", "ittle", "ea", "ot"]
或使用RegExp.exec
函數與正則表達式/\b\w([\w'-]+)\b/g
:
var str = "I'm a little tea pot", words = "", res, re = /\b\w([\w'-]+)\b/g;
while ((res = re.exec(str)) != null){
words += " " + res[1];
}
console.log(words); // "'m ittle ea ot"
你想收集匹配到一個數組或替換那些部分除第一個字符? –
請檢查[this fiddle](https://jsfiddle.net/v70vtc2p/)。我建議在替換中使用'/ \ b([a-z])((?:[' - ]?[a-z] +)+)/ gi'。 –
顯示如何看最終結果 – RomanPerekhrest