새 줄을 분할하는 방법
저는 jQuery를 사용하고 있고, 텍스트 영역이 있습니다.버튼으로 제출하면 새 줄로 구분된 각 텍스트에 알림을 보냅니다.새 줄이 있을 때 내 텍스트를 분할하는 방법은 무엇입니까?
var ks = $('#keywords').val().split("\n");
(function($){
$(document).ready(function(){
$('#data').submit(function(e){
e.preventDefault();
alert(ks[0]);
$.each(ks, function(k){
alert(k);
});
});
});
})(jQuery);
입력 예:
Hello
There
원하는 결과는 다음과 같습니다.
alert(Hello); and
alert(There)
플랫폼(운영 체제)에 관계없이 새 줄을 구문 분석해야 합니다.이 분할은 정규식에서 보편적입니다.다음을 사용할 수 있습니다.
var ks = $('#keywords').val().split(/\r?\n/);
예.
"a\nb\r\nc\r\nlala".split(/\r?\n/) // ["a", "b", "c", "lala"]
초기화 시도:ks
제출 함수 내부의 변수입니다.
(function($){
$(document).ready(function(){
$('#data').submit(function(e){
var ks = $('#keywords').val().split("\n");
e.preventDefault();
alert(ks[0]);
$.each(ks, function(k){
alert(k);
});
});
});
})(jQuery);
그럴 것 같네요.
yadayada.val.split(/\n/)
정규식이 아니라 분할 명령에 리터럴 문자열을 전달하는 것입니다.
사용 중이므로textarea
줄 바꿈에 대해 \n 또는 \r(또는 \r\n)을 찾을 수 있습니다.따라서 다음이 제안됩니다.
$('#keywords').val().split(/\r|\n/)
ref: 문자열에 줄 바꿈이 포함되어 있는지 확인합니다.
그저.
var ks = $('#keywords').val().split(/\r\n|\n|\r/);
완벽하게 작동할 것입니다.
명심하라.\r\n
RegExp 문자열의 맨 앞에 위치합니다. 먼저 시도되기 때문입니다.
형식(CRLF, LFCR 또는 LF)에 관계없이 새 줄을 사용하여 문자열을 분할하는 가장 간단하고 안전한 방법은 모든 캐리지 반환 문자를 제거한 다음 새 줄 문자로 분할하는 것입니다."text".replace(/\r/g, "").split(/\n/);
이렇게 하면 연속적인 새 줄이 있을 때(즉, 새 줄이 있을 때) 확인할 수 있습니다.\r\n\r\n
,\n\r\n\r
또는\n\n
) 결과는 항상 동일합니다.
이 경우 코드는 다음과 같습니다.
(function ($) {
$(document).ready(function () {
$('#data').submit(function (e) {
var ks = $('#keywords').val().replace(/\r/g, "").split(/\n/);
e.preventDefault();
alert(ks[0]);
$.each(ks, function (k) {
alert(k);
});
});
});
})(jQuery);
다음은 이 방법의 중요성을 보여주는 몇 가지 예입니다.
var examples = ["Foo\r\nBar", "Foo\r\n\r\nBar", "Foo\n\r\n\rBar", "Foo\nBar\nFooBar"];
examples.forEach(function(example) {
output(`Example "${example}":`);
output(`Split using "\n": "${example.split("\n")}"`);
output(`Split using /\r?\n/: "${example.split(/\r?\n/)}"`);
output(`Split using /\r\n|\n|\r/: "${example.split(/\r\n|\n|\r/)}"`);
output(`Current method: ${example.replace(/\r/g, "").split("\n")}`);
output("________");
});
function output(txt) {
console.log(txt.replace(/\n/g, "\\n").replace(/\r/g, "\\r"));
}
- 이동
var ks = $('#keywords').val().split("\n");
이벤트 핸들러 내부 - 사용하다
alert(ks[k])
대신에alert(k)
(function($){
$(document).ready(function(){
$('#data').submit(function(e){
e.preventDefault();
var ks = $('#keywords').val().split("\n");
alert(ks[0]);
$.each(ks, function(k){
alert(ks[k]);
});
});
});
})(jQuery);
Good'ol Javascript:
var m = "Hello World";
var k = m.split(' '); // I have used space, you can use any thing.
for(i=0;i<k.length;i++)
alert(k[i]);
문제는 초기화할 때ks
,그value
설정되지 않았습니다.
사용자가 양식을 제출할 때 값을 가져와야 합니다.그래서 당신은 내부 콜백 기능을 초기화해야 합니다.
(function($){
$(document).ready(function(){
$('#data').submit(function(e){
//Here it will fetch the value of #keywords
var ks = $('#keywords').val().split("\n");
...
});
});
})(jQuery);
다음은 의 예입니다.console.log
대신에alert()
그것이 더 편리합니다 :)
var parse = function(){
var str = $('textarea').val();
var results = str.split("\n");
$.each(results, function(index, element){
console.log(element);
});
};
$(function(){
$('button').on('click', parse);
});
여기서 사용해 보세요.
(function($) {
$(document).ready(function() {
$('#data').click(function(e) {
e.preventDefault();
$.each($("#keywords").val().split("\n"), function(e, element) {
alert(element);
});
});
});
})(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="keywords">Hello
World</textarea>
<input id="data" type="button" value="submit">
당신은 거기에 정규 표현을 전달할 필요가 없습니다.이것은 잘 작동합니다.
(function($) {
$(document).ready(function() {
$('#data').click(function(e) {
e.preventDefault();
$.each($("#keywords").val().split("\n"), function(e, element) {
alert(element);
});
});
});
})(jQuery);
리액트 네이티브에서는 이중 백슬래시를 통해 새 줄 문자로 분할을 수행합니다. 첫 번째는 이스케이프 문자입니다.
data = str.split("\\n");
언급URL : https://stackoverflow.com/questions/8125709/how-to-split-newline
'programing' 카테고리의 다른 글
VBA를 사용하여 Excel과 수직으로 병합된 셀의 시작 범위 및 종료 범위 가져오기 (0) | 2023.08.13 |
---|---|
바인딩 보기 - 포함된 레이아웃에 대한 바인딩을 가져오려면 어떻게 해야 합니까? (0) | 2023.08.13 |
MySQL/MariaDB에서 임의 절차 코드 실행 (0) | 2023.08.13 |
"헤드-n-3"에 해당하는 PowerShell? (0) | 2023.08.13 |
MySQL Workbench 스키마 패널이 작동하지 않음 (0) | 2023.08.13 |