Это дополнение к моему ранее отвеченному вопросу.
вопрос 8423472
Я пытался реализовать функцию проверки этого замечательного кода, но безрезультатно.
Похоже, мне нужно больше держать руку здесь.
Этот сценарий является слегка измененной версией довольно превосходного ответа, который я получил от @Martin Jespersen.
Сценарийодин столбец списка электронных писем и разбитый на текстовые области, содержащие в одну строку списки, разделенные запятыми, не более 150 адресов.Хорошо.
Ниже работает отлично, но мне нужно добавить базовую функцию проверки.
<code><html>
<head>
<script language=javascript type='text/javascript'>
function onpaste(e) {
var t = this;
var cnt='0';
setTimeout(function(){
var list = document.getElementById('t');
var emails= t.value.split(/\s+/), ta;
while(emails.length) {
cnt++;
ta = document.createElement('textarea');
ta.value = emails.splice(0,150).join(',').replace(/,\s*$/,'');
document.body.appendChild(ta);
}
document.getElementById('button1').value=cnt;
},1);
}
window.onload = function() {
document.getElementById('t').onpaste = onpaste;
}
</script>
</head>
<BODY>
<p><textarea id="t" rows="10" cols="50" class="textarea"></textarea><br /></p><br />
There are <input type="button" id="button1" value="0"> textareas
<pre id="p" class="pre">
ОДНАКО, парень, которого я сделал этоибо (на самом деле @Martin сделал это) не очень тщательно описывает, что он вставляет в текстовую область.
Итак, я пытаюсь реализовать функцию, которая уменьшит количество недействительных писем / неправильный ввод.
Я попробовал несколько способов, включая изменение события onload на кнопку на странице с событием onclick.
Я думал, что я учусь здесь, но я просто не могу сосредоточиться на том, что я делаю неправильно.
Итак, как мне вставить эту функцию или просто ее «процедуру проверки» в одну из вышеуказанных функций?
function findEmailAddresses(StrObj) {
var separateEmailsBy = '\n';
var email = "<none>"; // if no match, use this
var emailsArray = StrObj.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi); // yeah could be better
if (emailsArray) {
email = "";
for (var i = 0; i < emailsArray.length; i++) {
if (i != 0) email += separateEmailsBy;
email += emailsArray[i];
}
}
return email;
}
Использование функции findEmailAddresses:
<textarea name=t rows=10 cols=50 onBlur="this.form.email.value=findEmailAddresses(this.value);"></textarea>
Я попытался вызвать функцию индивидуально в функциях выше и даже попытался удалить функцию, просто вставляя код, используя «электронные письма» вместо «this.value» в обоих случаях.Я даже попробовал двухстраничный подход.По какой-то причине я просто не могу внедрить этот код в работающий сплиттер.Мои результаты либо не действуют, либо я ломаю вещь.
В основном я пробовал много вариантов вставки.Как показано ниже:
<code> <html>
<head>
<script language=javascript type='text/javascript'>
function onpaste(e) {
var t = this;
var cnt='0';
setTimeout(function(){
var list = document.getElementById('t');
var emails= t.value.split(/\s+/), ta;
//
findEmailAddresses(emails);
// also tried inserting code from function. ///
while(emails.length) {
cnt++;
ta = document.createElement('textarea');
ta.value = emails.splice(0,150).join(',').replace(/,\s*$/,'');
document.body.appendChild(ta);
}
document.getElementById('button1').value=cnt;
},1);
}
window.onload = function() {
// tried to trigger it here as well and even added a new split //
document.getElementById('t').onpaste = onpaste;
}
/////
function findEmailAddresses(StrObj) {
var separateEmailsBy = '\n';
var email = "<none>"; // if no match, use this
var emailsArray = StrObj.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi); // yeah could be better
if (emailsArray) {
email = "";
for (var i = 0; i < emailsArray.length; i++) {
if (i != 0) email += separateEmailsBy;
email += emailsArray[i];
}
}
return email;
}
////////
</script>
</head>
<BODY>
<p><textarea id="t" rows="10" cols="50" class="textarea"></textarea><br /></p><br />
There are <input type="button" id="button1" value="0"> textareas
<pre id="p" class="pre">
Большое спасибо всем, кто может помочь.